From a833bb1b42c7b99fad757fab84cb9a6ca1cbcb22 Mon Sep 17 00:00:00 2001 From: hellertang Date: Mon, 2 Dec 2024 06:57:01 +0000 Subject: [PATCH] sync provider Signed-off-by: hellertang --- .../pulumi-resource-tencentcloud/schema.json | 598 +++++++++++++++- provider/go.mod | 8 +- provider/go.sum | 16 +- sdk/dotnet/Tencentcloud/As/ScalingConfig.cs | 105 ++- .../Clb/Inputs/ListenerRuleOauthArgs.cs | 33 + .../Clb/Inputs/ListenerRuleOauthGetArgs.cs | 33 + sdk/dotnet/Tencentcloud/Clb/ListenerRule.cs | 18 + .../Clb/Outputs/ListenerRuleOauth.cs | 36 + .../Tencentcloud/Cls/CloudProductLogTask.cs | 319 +++++++++ .../Inputs/NoticeContentNoticeContentsArgs.cs | 39 + .../NoticeContentNoticeContentsGetArgs.cs | 39 + ...ontentNoticeContentsRecoveryContentArgs.cs | 45 ++ ...entNoticeContentsRecoveryContentGetArgs.cs | 45 ++ ...ContentNoticeContentsTriggerContentArgs.cs | 45 ++ ...tentNoticeContentsTriggerContentGetArgs.cs | 45 ++ sdk/dotnet/Tencentcloud/Cls/NoticeContent.cs | 183 +++++ .../Outputs/NoticeContentNoticeContents.cs | 43 ++ ...iceContentNoticeContentsRecoveryContent.cs | 43 ++ ...ticeContentNoticeContentsTriggerContent.cs | 43 ++ .../Tencentcloud/Kubernetes/NodePool.cs | 126 ++++ sdk/dotnet/Tencentcloud/Reserve/IpAddress.cs | 38 + sdk/dotnet/Tencentcloud/Scf/CustomDomain.cs | 224 ++++++ .../Scf/Inputs/CustomDomainCertConfigArgs.cs | 27 + .../Inputs/CustomDomainCertConfigGetArgs.cs | 27 + .../Inputs/CustomDomainEndpointsConfigArgs.cs | 57 ++ .../CustomDomainEndpointsConfigGetArgs.cs | 57 ++ ...tomDomainEndpointsConfigPathRewriteArgs.cs | 39 + ...DomainEndpointsConfigPathRewriteGetArgs.cs | 39 + .../Scf/Inputs/CustomDomainWafConfigArgs.cs | 33 + .../Inputs/CustomDomainWafConfigGetArgs.cs | 33 + .../Scf/Outputs/CustomDomainCertConfig.cs | 28 + .../Outputs/CustomDomainEndpointsConfig.cs | 57 ++ .../CustomDomainEndpointsConfigPathRewrite.cs | 43 ++ .../Scf/Outputs/CustomDomainWafConfig.cs | 36 + sdk/dotnet/Tencentcloud/Vpn/Connection.cs | 94 ++- .../Vpn/Inputs/ConnectionBgpConfigArgs.cs | 39 + .../Vpn/Inputs/ConnectionBgpConfigGetArgs.cs | 39 + .../Inputs/ConnectionHealthCheckConfigArgs.cs | 45 ++ .../ConnectionHealthCheckConfigGetArgs.cs | 45 ++ .../Vpn/Outputs/ConnectionBgpConfig.cs | 43 ++ .../Outputs/ConnectionHealthCheckConfig.cs | 50 ++ sdk/go/tencentcloud/as/scalingConfig.go | 111 ++- sdk/go/tencentcloud/clb/listenerRule.go | 15 + sdk/go/tencentcloud/clb/pulumiTypes.go | 160 +++++ .../tencentcloud/cls/cloudProductLogTask.go | 474 ++++++++++++ sdk/go/tencentcloud/cls/init.go | 14 + sdk/go/tencentcloud/cls/noticeContent.go | 298 ++++++++ sdk/go/tencentcloud/cls/pulumiTypes.go | 541 ++++++++++++++ sdk/go/tencentcloud/kubernetes/nodePool.go | 117 +++ sdk/go/tencentcloud/reserve/ipAddress.go | 43 ++ sdk/go/tencentcloud/scf/customDomain.go | 333 +++++++++ sdk/go/tencentcloud/scf/init.go | 7 + sdk/go/tencentcloud/scf/pulumiTypes.go | 557 +++++++++++++++ sdk/go/tencentcloud/vpn/connection.go | 90 ++- sdk/go/tencentcloud/vpn/pulumiTypes.go | 377 ++++++++++ sdk/nodejs/as/scalingConfig.ts | 80 ++- sdk/nodejs/clb/listenerRule.ts | 16 + sdk/nodejs/cls/cloudProductLogTask.ts | 282 ++++++++ sdk/nodejs/cls/index.ts | 16 + sdk/nodejs/cls/noticeContent.ts | 148 ++++ sdk/nodejs/kubernetes/nodePool.ts | 92 +++ sdk/nodejs/reserve/ipAddress.ts | 30 + sdk/nodejs/scf/customDomain.ts | 182 +++++ sdk/nodejs/scf/index.ts | 8 + sdk/nodejs/tsconfig.json | 3 + sdk/nodejs/types/input.ts | 146 ++++ sdk/nodejs/types/output.ts | 146 ++++ sdk/nodejs/vpn/connection.ts | 81 ++- .../tencentcloud_iac_pulumi/__init__.py | 24 + .../as_/scaling_config.py | 175 ++++- .../tencentcloud_iac_pulumi/clb/_inputs.py | 40 ++ .../clb/listener_rule.py | 49 ++ .../tencentcloud_iac_pulumi/clb/outputs.py | 51 ++ .../tencentcloud_iac_pulumi/cls/__init__.py | 2 + .../tencentcloud_iac_pulumi/cls/_inputs.py | 167 +++++ .../cls/cloud_product_log_task.py | 675 ++++++++++++++++++ .../cls/notice_content.py | 307 ++++++++ .../tencentcloud_iac_pulumi/cls/outputs.py | 150 ++++ .../kubernetes/node_pool.py | 220 ++++++ .../reserve/ip_address.py | 58 +- .../tencentcloud_iac_pulumi/scf/__init__.py | 1 + .../tencentcloud_iac_pulumi/scf/_inputs.py | 201 ++++++ .../scf/custom_domain.py | 398 +++++++++++ .../tencentcloud_iac_pulumi/scf/outputs.py | 214 ++++++ .../tencentcloud_iac_pulumi/vpn/_inputs.py | 125 ++++ .../tencentcloud_iac_pulumi/vpn/connection.py | 221 +++++- .../tencentcloud_iac_pulumi/vpn/outputs.py | 141 ++++ 87 files changed, 10391 insertions(+), 150 deletions(-) create mode 100644 sdk/dotnet/Tencentcloud/Clb/Inputs/ListenerRuleOauthArgs.cs create mode 100644 sdk/dotnet/Tencentcloud/Clb/Inputs/ListenerRuleOauthGetArgs.cs create mode 100644 sdk/dotnet/Tencentcloud/Clb/Outputs/ListenerRuleOauth.cs create mode 100644 sdk/dotnet/Tencentcloud/Cls/CloudProductLogTask.cs create mode 100644 sdk/dotnet/Tencentcloud/Cls/Inputs/NoticeContentNoticeContentsArgs.cs create mode 100644 sdk/dotnet/Tencentcloud/Cls/Inputs/NoticeContentNoticeContentsGetArgs.cs create mode 100644 sdk/dotnet/Tencentcloud/Cls/Inputs/NoticeContentNoticeContentsRecoveryContentArgs.cs create mode 100644 sdk/dotnet/Tencentcloud/Cls/Inputs/NoticeContentNoticeContentsRecoveryContentGetArgs.cs create mode 100644 sdk/dotnet/Tencentcloud/Cls/Inputs/NoticeContentNoticeContentsTriggerContentArgs.cs create mode 100644 sdk/dotnet/Tencentcloud/Cls/Inputs/NoticeContentNoticeContentsTriggerContentGetArgs.cs create mode 100644 sdk/dotnet/Tencentcloud/Cls/NoticeContent.cs create mode 100644 sdk/dotnet/Tencentcloud/Cls/Outputs/NoticeContentNoticeContents.cs create mode 100644 sdk/dotnet/Tencentcloud/Cls/Outputs/NoticeContentNoticeContentsRecoveryContent.cs create mode 100644 sdk/dotnet/Tencentcloud/Cls/Outputs/NoticeContentNoticeContentsTriggerContent.cs create mode 100644 sdk/dotnet/Tencentcloud/Scf/CustomDomain.cs create mode 100644 sdk/dotnet/Tencentcloud/Scf/Inputs/CustomDomainCertConfigArgs.cs create mode 100644 sdk/dotnet/Tencentcloud/Scf/Inputs/CustomDomainCertConfigGetArgs.cs create mode 100644 sdk/dotnet/Tencentcloud/Scf/Inputs/CustomDomainEndpointsConfigArgs.cs create mode 100644 sdk/dotnet/Tencentcloud/Scf/Inputs/CustomDomainEndpointsConfigGetArgs.cs create mode 100644 sdk/dotnet/Tencentcloud/Scf/Inputs/CustomDomainEndpointsConfigPathRewriteArgs.cs create mode 100644 sdk/dotnet/Tencentcloud/Scf/Inputs/CustomDomainEndpointsConfigPathRewriteGetArgs.cs create mode 100644 sdk/dotnet/Tencentcloud/Scf/Inputs/CustomDomainWafConfigArgs.cs create mode 100644 sdk/dotnet/Tencentcloud/Scf/Inputs/CustomDomainWafConfigGetArgs.cs create mode 100644 sdk/dotnet/Tencentcloud/Scf/Outputs/CustomDomainCertConfig.cs create mode 100644 sdk/dotnet/Tencentcloud/Scf/Outputs/CustomDomainEndpointsConfig.cs create mode 100644 sdk/dotnet/Tencentcloud/Scf/Outputs/CustomDomainEndpointsConfigPathRewrite.cs create mode 100644 sdk/dotnet/Tencentcloud/Scf/Outputs/CustomDomainWafConfig.cs create mode 100644 sdk/dotnet/Tencentcloud/Vpn/Inputs/ConnectionBgpConfigArgs.cs create mode 100644 sdk/dotnet/Tencentcloud/Vpn/Inputs/ConnectionBgpConfigGetArgs.cs create mode 100644 sdk/dotnet/Tencentcloud/Vpn/Inputs/ConnectionHealthCheckConfigArgs.cs create mode 100644 sdk/dotnet/Tencentcloud/Vpn/Inputs/ConnectionHealthCheckConfigGetArgs.cs create mode 100644 sdk/dotnet/Tencentcloud/Vpn/Outputs/ConnectionBgpConfig.cs create mode 100644 sdk/dotnet/Tencentcloud/Vpn/Outputs/ConnectionHealthCheckConfig.cs create mode 100644 sdk/go/tencentcloud/cls/cloudProductLogTask.go create mode 100644 sdk/go/tencentcloud/cls/noticeContent.go create mode 100644 sdk/go/tencentcloud/scf/customDomain.go create mode 100644 sdk/nodejs/cls/cloudProductLogTask.ts create mode 100644 sdk/nodejs/cls/noticeContent.ts create mode 100644 sdk/nodejs/scf/customDomain.ts create mode 100644 sdk/python/tencentcloud_iac_pulumi/cls/cloud_product_log_task.py create mode 100644 sdk/python/tencentcloud_iac_pulumi/cls/notice_content.py create mode 100644 sdk/python/tencentcloud_iac_pulumi/scf/custom_domain.py diff --git a/provider/cmd/pulumi-resource-tencentcloud/schema.json b/provider/cmd/pulumi-resource-tencentcloud/schema.json index 09516ad63..61a41e8da 100644 --- a/provider/cmd/pulumi-resource-tencentcloud/schema.json +++ b/provider/cmd/pulumi-resource-tencentcloud/schema.json @@ -22988,6 +22988,27 @@ "subnetId" ] }, + "tencentcloud:Clb/ListenerRuleOauth:ListenerRuleOauth": { + "properties": { + "oauthEnable": { + "type": "boolean", + "description": "Enable or disable authentication. True: Enabled; False: Disabled.\n" + }, + "oauthFailureStatus": { + "type": "string", + "description": "After all IAPs fail, the request is rejected or released. BYPASS: PASS; REJECT: Reject.\n" + } + }, + "type": "object", + "language": { + "nodejs": { + "requiredOutputs": [ + "oauthEnable", + "oauthFailureStatus" + ] + } + } + }, "tencentcloud:Clb/ReplaceCertForLbsCertificate:ReplaceCertForLbsCertificate": { "properties": { "certCaContent": { @@ -27820,6 +27841,66 @@ "values" ] }, + "tencentcloud:Cls/NoticeContentNoticeContents:NoticeContentNoticeContents": { + "properties": { + "recoveryContent": { + "$ref": "#/types/tencentcloud:Cls/NoticeContentNoticeContentsRecoveryContent:NoticeContentNoticeContentsRecoveryContent", + "description": "Template for Alarm Recovery Notification Content.\n" + }, + "triggerContent": { + "$ref": "#/types/tencentcloud:Cls/NoticeContentNoticeContentsTriggerContent:NoticeContentNoticeContentsTriggerContent", + "description": "Alarm triggered notification content template.\n" + }, + "type": { + "type": "string", + "description": "Channel type. Email: Email; Sms: SMS; WeChat: WeChat; Phone: Telephone; WeCom: Enterprise WeChat; DingTalk: DingTalk; Lark: Feishu; HTTP: Custom callback.\n" + } + }, + "type": "object", + "required": [ + "type" + ] + }, + "tencentcloud:Cls/NoticeContentNoticeContentsRecoveryContent:NoticeContentNoticeContentsRecoveryContent": { + "properties": { + "content": { + "type": "string", + "description": "Notification content template body information.\n" + }, + "headers": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Request headers: In HTTP requests, request headers contain additional information sent by the client to the server, such as user agent, authorization credentials, expected response format, etc. Only `custom callback` supports this configuration.\n" + }, + "title": { + "type": "string", + "description": "Notification content template title information. Some notification channel types do not support 'title', please refer to the Tencent Cloud Console page.\n" + } + }, + "type": "object" + }, + "tencentcloud:Cls/NoticeContentNoticeContentsTriggerContent:NoticeContentNoticeContentsTriggerContent": { + "properties": { + "content": { + "type": "string", + "description": "Notification content template body information.\n" + }, + "headers": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Request headers: In HTTP requests, request headers contain additional information sent by the client to the server, such as user agent, authorization credentials, expected response format, etc. Only `custom callback` supports this configuration.\n" + }, + "title": { + "type": "string", + "description": "Notification content template title information. Some notification channel types do not support 'title', please refer to the Tencent Cloud Console page.\n" + } + }, + "type": "object" + }, "tencentcloud:Cls/ScheduledSqlDstResource:ScheduledSqlDstResource": { "properties": { "bizType": { @@ -93666,6 +93747,84 @@ } } }, + "tencentcloud:Scf/CustomDomainCertConfig:CustomDomainCertConfig": { + "properties": { + "certificateId": { + "type": "string", + "description": "SSL Certificates ID.\n" + } + }, + "type": "object" + }, + "tencentcloud:Scf/CustomDomainEndpointsConfig:CustomDomainEndpointsConfig": { + "properties": { + "functionName": { + "type": "string", + "description": "Function name.\n" + }, + "namespace": { + "type": "string", + "description": "Function namespace.\n" + }, + "pathMatch": { + "type": "string", + "description": "Path, value specification: /,/*,/xxx,/xxx/a,/xxx/*.\n" + }, + "pathRewrites": { + "type": "array", + "items": { + "$ref": "#/types/tencentcloud:Scf/CustomDomainEndpointsConfigPathRewrite:CustomDomainEndpointsConfigPathRewrite" + }, + "description": "Path rewriting policy.\n" + }, + "qualifier": { + "type": "string", + "description": "Function alias or version.\n" + } + }, + "type": "object", + "required": [ + "functionName", + "namespace", + "pathMatch", + "qualifier" + ] + }, + "tencentcloud:Scf/CustomDomainEndpointsConfigPathRewrite:CustomDomainEndpointsConfigPathRewrite": { + "properties": { + "path": { + "type": "string", + "description": "Path that needs to be rerouted, value specification: /,/*,/xxx,/xxx/a,/xxx/*.\n" + }, + "rewrite": { + "type": "string", + "description": "Replacement values: such as/, /$.\n" + }, + "type": { + "type": "string", + "description": "Matching rules, value range: WildcardRules wildcard matching, ExactRules exact matching.\n" + } + }, + "type": "object", + "required": [ + "path", + "rewrite", + "type" + ] + }, + "tencentcloud:Scf/CustomDomainWafConfig:CustomDomainWafConfig": { + "properties": { + "wafInstanceId": { + "type": "string", + "description": "Web Application Firewall Instance ID.\n" + }, + "wafOpen": { + "type": "string", + "description": "Whether the Web Application Firewall is turned on, value range:OPEN, CLOSE.\n" + } + }, + "type": "object" + }, "tencentcloud:Scf/FunctionAliasRoutingConfig:FunctionAliasRoutingConfig": { "properties": { "additionalVersionMatches": { @@ -117783,6 +117942,49 @@ } } }, + "tencentcloud:Vpn/ConnectionBgpConfig:ConnectionBgpConfig": { + "properties": { + "localBgpIp": { + "type": "string", + "description": "Cloud BGP address. It must be allocated from within the BGP tunnel network segment.\n" + }, + "remoteBgpIp": { + "type": "string", + "description": "User side BGP address. It must be allocated from within the BGP tunnel network segment.\n" + }, + "tunnelCidr": { + "type": "string", + "description": "BGP tunnel segment.\n" + } + }, + "type": "object", + "required": [ + "localBgpIp", + "remoteBgpIp", + "tunnelCidr" + ] + }, + "tencentcloud:Vpn/ConnectionHealthCheckConfig:ConnectionHealthCheckConfig": { + "properties": { + "probeInterval": { + "type": "integer", + "description": "Detection interval, Tencent Cloud's interval between two health checks, range [1000-5000], Unit: ms.\n" + }, + "probeThreshold": { + "type": "integer", + "description": "Detection times, perform route switching after N consecutive health check failures, range [3-8], Unit: times.\n" + }, + "probeTimeout": { + "type": "integer", + "description": "Detection timeout, range [10-5000], Unit: ms.\n" + }, + "probeType": { + "type": "string", + "description": "Detection mode, default is `NQA`, cannot be modified.\n" + } + }, + "type": "object" + }, "tencentcloud:Vpn/ConnectionSecurityGroupPolicy:ConnectionSecurityGroupPolicy": { "properties": { "localCidrBlock": { @@ -126648,7 +126850,7 @@ } }, "tencentcloud:As/scalingConfig:ScalingConfig": { - "description": "Provides a resource to create a configuration for an AS (Auto scaling) instance.\n\n\u003e **NOTE:** In order to ensure the integrity of customer data, if the cvm instance was destroyed due to shrinking, it will keep the cbs associate with cvm by default. If you want to destroy together, please set `delete_with_instance` to `true`.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as tencentcloud from \"@tencentcloud_iac/pulumi\";\nimport * as tencentcloud from \"@tencentcloud_iac/pulumi\";\n\nconst exampleInstance = tencentcloud.Images.getInstance({\n imageTypes: [\"PUBLIC_IMAGE\"],\n osName: \"TencentOS Server 3.2 (Final)\",\n});\nconst exampleScalingConfig = new tencentcloud.as.ScalingConfig(\"exampleScalingConfig\", {\n configurationName: \"example-launch-configuration\",\n imageId: exampleInstance.then(exampleInstance =\u003e exampleInstance.images?.[0]?.imageId),\n instanceTypes: [\"SA1.SMALL1\"],\n projectId: 0,\n systemDiskType: \"CLOUD_PREMIUM\",\n systemDiskSize: 50,\n dataDisks: [{\n diskType: \"CLOUD_PREMIUM\",\n diskSize: 50,\n }],\n internetChargeType: \"TRAFFIC_POSTPAID_BY_HOUR\",\n internetMaxBandwidthOut: 10,\n publicIpAssigned: true,\n password: \"Test@123#\",\n enhancedSecurityService: false,\n enhancedMonitorService: false,\n enhancedAutomationToolsService: false,\n userData: \"dGVzdA==\",\n hostNameSettings: {\n hostName: \"host-name-test\",\n hostNameStyle: \"UNIQUE\",\n },\n instanceTags: {\n tag: \"example\",\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_tencentcloud as tencentcloud\nimport tencentcloud_iac_pulumi as tencentcloud\n\nexample_instance = tencentcloud.Images.get_instance(image_types=[\"PUBLIC_IMAGE\"],\n os_name=\"TencentOS Server 3.2 (Final)\")\nexample_scaling_config = tencentcloud.as_.ScalingConfig(\"exampleScalingConfig\",\n configuration_name=\"example-launch-configuration\",\n image_id=example_instance.images[0].image_id,\n instance_types=[\"SA1.SMALL1\"],\n project_id=0,\n system_disk_type=\"CLOUD_PREMIUM\",\n system_disk_size=50,\n data_disks=[tencentcloud.as_.ScalingConfigDataDiskArgs(\n disk_type=\"CLOUD_PREMIUM\",\n disk_size=50,\n )],\n internet_charge_type=\"TRAFFIC_POSTPAID_BY_HOUR\",\n internet_max_bandwidth_out=10,\n public_ip_assigned=True,\n password=\"Test@123#\",\n enhanced_security_service=False,\n enhanced_monitor_service=False,\n enhanced_automation_tools_service=False,\n user_data=\"dGVzdA==\",\n host_name_settings=tencentcloud.as_.ScalingConfigHostNameSettingsArgs(\n host_name=\"host-name-test\",\n host_name_style=\"UNIQUE\",\n ),\n instance_tags={\n \"tag\": \"example\",\n })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Tencentcloud = Pulumi.Tencentcloud;\nusing Tencentcloud = TencentCloudIAC.PulumiPackage.Tencentcloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var exampleInstance = Tencentcloud.Images.GetInstance.Invoke(new()\n {\n ImageTypes = new[]\n {\n \"PUBLIC_IMAGE\",\n },\n OsName = \"TencentOS Server 3.2 (Final)\",\n });\n\n var exampleScalingConfig = new Tencentcloud.As.ScalingConfig(\"exampleScalingConfig\", new()\n {\n ConfigurationName = \"example-launch-configuration\",\n ImageId = exampleInstance.Apply(getInstanceResult =\u003e getInstanceResult.Images[0]?.ImageId),\n InstanceTypes = new[]\n {\n \"SA1.SMALL1\",\n },\n ProjectId = 0,\n SystemDiskType = \"CLOUD_PREMIUM\",\n SystemDiskSize = 50,\n DataDisks = new[]\n {\n new Tencentcloud.As.Inputs.ScalingConfigDataDiskArgs\n {\n DiskType = \"CLOUD_PREMIUM\",\n DiskSize = 50,\n },\n },\n InternetChargeType = \"TRAFFIC_POSTPAID_BY_HOUR\",\n InternetMaxBandwidthOut = 10,\n PublicIpAssigned = true,\n Password = \"Test@123#\",\n EnhancedSecurityService = false,\n EnhancedMonitorService = false,\n EnhancedAutomationToolsService = false,\n UserData = \"dGVzdA==\",\n HostNameSettings = new Tencentcloud.As.Inputs.ScalingConfigHostNameSettingsArgs\n {\n HostName = \"host-name-test\",\n HostNameStyle = \"UNIQUE\",\n },\n InstanceTags = \n {\n { \"tag\", \"example\" },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/tencentcloudstack/pulumi-tencentcloud/sdk/go/tencentcloud/As\"\n\t\"github.com/tencentcloudstack/pulumi-tencentcloud/sdk/go/tencentcloud/Images\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleInstance, err := Images.GetInstance(ctx, \u0026images.GetInstanceArgs{\n\t\t\tImageTypes: []string{\n\t\t\t\t\"PUBLIC_IMAGE\",\n\t\t\t},\n\t\t\tOsName: pulumi.StringRef(\"TencentOS Server 3.2 (Final)\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = As.NewScalingConfig(ctx, \"exampleScalingConfig\", \u0026As.ScalingConfigArgs{\n\t\t\tConfigurationName: pulumi.String(\"example-launch-configuration\"),\n\t\t\tImageId: pulumi.String(exampleInstance.Images[0].ImageId),\n\t\t\tInstanceTypes: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"SA1.SMALL1\"),\n\t\t\t},\n\t\t\tProjectId: pulumi.Int(0),\n\t\t\tSystemDiskType: pulumi.String(\"CLOUD_PREMIUM\"),\n\t\t\tSystemDiskSize: pulumi.Int(50),\n\t\t\tDataDisks: as.ScalingConfigDataDiskArray{\n\t\t\t\t\u0026as.ScalingConfigDataDiskArgs{\n\t\t\t\t\tDiskType: pulumi.String(\"CLOUD_PREMIUM\"),\n\t\t\t\t\tDiskSize: pulumi.Int(50),\n\t\t\t\t},\n\t\t\t},\n\t\t\tInternetChargeType: pulumi.String(\"TRAFFIC_POSTPAID_BY_HOUR\"),\n\t\t\tInternetMaxBandwidthOut: pulumi.Int(10),\n\t\t\tPublicIpAssigned: pulumi.Bool(true),\n\t\t\tPassword: pulumi.String(\"Test@123#\"),\n\t\t\tEnhancedSecurityService: pulumi.Bool(false),\n\t\t\tEnhancedMonitorService: pulumi.Bool(false),\n\t\t\tEnhancedAutomationToolsService: pulumi.Bool(false),\n\t\t\tUserData: pulumi.String(\"dGVzdA==\"),\n\t\t\tHostNameSettings: \u0026as.ScalingConfigHostNameSettingsArgs{\n\t\t\t\tHostName: pulumi.String(\"host-name-test\"),\n\t\t\t\tHostNameStyle: pulumi.String(\"UNIQUE\"),\n\t\t\t},\n\t\t\tInstanceTags: pulumi.Map{\n\t\t\t\t\"tag\": pulumi.Any(\"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.tencentcloud.Images.ImagesFunctions;\nimport com.pulumi.tencentcloud.Images.inputs.GetInstanceArgs;\nimport com.pulumi.tencentcloud.As.ScalingConfig;\nimport com.pulumi.tencentcloud.As.ScalingConfigArgs;\nimport com.pulumi.tencentcloud.As.inputs.ScalingConfigDataDiskArgs;\nimport com.pulumi.tencentcloud.As.inputs.ScalingConfigHostNameSettingsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var exampleInstance = ImagesFunctions.getInstance(GetInstanceArgs.builder()\n .imageTypes(\"PUBLIC_IMAGE\")\n .osName(\"TencentOS Server 3.2 (Final)\")\n .build());\n\n var exampleScalingConfig = new ScalingConfig(\"exampleScalingConfig\", ScalingConfigArgs.builder() \n .configurationName(\"example-launch-configuration\")\n .imageId(exampleInstance.applyValue(getInstanceResult -\u003e getInstanceResult.images()[0].imageId()))\n .instanceTypes(\"SA1.SMALL1\")\n .projectId(0)\n .systemDiskType(\"CLOUD_PREMIUM\")\n .systemDiskSize(\"50\")\n .dataDisks(ScalingConfigDataDiskArgs.builder()\n .diskType(\"CLOUD_PREMIUM\")\n .diskSize(50)\n .build())\n .internetChargeType(\"TRAFFIC_POSTPAID_BY_HOUR\")\n .internetMaxBandwidthOut(10)\n .publicIpAssigned(true)\n .password(\"Test@123#\")\n .enhancedSecurityService(false)\n .enhancedMonitorService(false)\n .enhancedAutomationToolsService(false)\n .userData(\"dGVzdA==\")\n .hostNameSettings(ScalingConfigHostNameSettingsArgs.builder()\n .hostName(\"host-name-test\")\n .hostNameStyle(\"UNIQUE\")\n .build())\n .instanceTags(Map.of(\"tag\", \"example\"))\n .build());\n\n }\n}\n```\n```yaml\nresources:\n exampleScalingConfig:\n type: tencentcloud:As:ScalingConfig\n properties:\n configurationName: example-launch-configuration\n imageId: ${exampleInstance.images[0].imageId}\n instanceTypes:\n - SA1.SMALL1\n projectId: 0\n systemDiskType: CLOUD_PREMIUM\n systemDiskSize: '50'\n dataDisks:\n - diskType: CLOUD_PREMIUM\n diskSize: 50\n internetChargeType: TRAFFIC_POSTPAID_BY_HOUR\n internetMaxBandwidthOut: 10\n publicIpAssigned: true\n password: Test@123#\n enhancedSecurityService: false\n enhancedMonitorService: false\n enhancedAutomationToolsService: false\n userData: dGVzdA==\n hostNameSettings:\n hostName: host-name-test\n hostNameStyle: UNIQUE\n instanceTags:\n tag: example\nvariables:\n exampleInstance:\n fn::invoke:\n Function: tencentcloud:Images:getInstance\n Arguments:\n imageTypes:\n - PUBLIC_IMAGE\n osName: TencentOS Server 3.2 (Final)\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### charge type\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as tencentcloud from \"@tencentcloud_iac/pulumi\";\nimport * as tencentcloud from \"@tencentcloud_iac/pulumi\";\n\nconst exampleInstance = tencentcloud.Images.getInstance({\n imageTypes: [\"PUBLIC_IMAGE\"],\n osName: \"TencentOS Server 3.2 (Final)\",\n});\nconst exampleScalingConfig = new tencentcloud.as.ScalingConfig(\"exampleScalingConfig\", {\n configurationName: \"launch-configuration\",\n imageId: exampleInstance.then(exampleInstance =\u003e exampleInstance.images?.[0]?.imageId),\n instanceTypes: [\"SA1.SMALL1\"],\n instanceChargeType: \"SPOTPAID\",\n spotInstanceType: \"one-time\",\n spotMaxPrice: \"1000\",\n});\n```\n```python\nimport pulumi\nimport pulumi_tencentcloud as tencentcloud\nimport tencentcloud_iac_pulumi as tencentcloud\n\nexample_instance = tencentcloud.Images.get_instance(image_types=[\"PUBLIC_IMAGE\"],\n os_name=\"TencentOS Server 3.2 (Final)\")\nexample_scaling_config = tencentcloud.as_.ScalingConfig(\"exampleScalingConfig\",\n configuration_name=\"launch-configuration\",\n image_id=example_instance.images[0].image_id,\n instance_types=[\"SA1.SMALL1\"],\n instance_charge_type=\"SPOTPAID\",\n spot_instance_type=\"one-time\",\n spot_max_price=\"1000\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Tencentcloud = Pulumi.Tencentcloud;\nusing Tencentcloud = TencentCloudIAC.PulumiPackage.Tencentcloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var exampleInstance = Tencentcloud.Images.GetInstance.Invoke(new()\n {\n ImageTypes = new[]\n {\n \"PUBLIC_IMAGE\",\n },\n OsName = \"TencentOS Server 3.2 (Final)\",\n });\n\n var exampleScalingConfig = new Tencentcloud.As.ScalingConfig(\"exampleScalingConfig\", new()\n {\n ConfigurationName = \"launch-configuration\",\n ImageId = exampleInstance.Apply(getInstanceResult =\u003e getInstanceResult.Images[0]?.ImageId),\n InstanceTypes = new[]\n {\n \"SA1.SMALL1\",\n },\n InstanceChargeType = \"SPOTPAID\",\n SpotInstanceType = \"one-time\",\n SpotMaxPrice = \"1000\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/tencentcloudstack/pulumi-tencentcloud/sdk/go/tencentcloud/As\"\n\t\"github.com/tencentcloudstack/pulumi-tencentcloud/sdk/go/tencentcloud/Images\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleInstance, err := Images.GetInstance(ctx, \u0026images.GetInstanceArgs{\n\t\t\tImageTypes: []string{\n\t\t\t\t\"PUBLIC_IMAGE\",\n\t\t\t},\n\t\t\tOsName: pulumi.StringRef(\"TencentOS Server 3.2 (Final)\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = As.NewScalingConfig(ctx, \"exampleScalingConfig\", \u0026As.ScalingConfigArgs{\n\t\t\tConfigurationName: pulumi.String(\"launch-configuration\"),\n\t\t\tImageId: pulumi.String(exampleInstance.Images[0].ImageId),\n\t\t\tInstanceTypes: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"SA1.SMALL1\"),\n\t\t\t},\n\t\t\tInstanceChargeType: pulumi.String(\"SPOTPAID\"),\n\t\t\tSpotInstanceType: pulumi.String(\"one-time\"),\n\t\t\tSpotMaxPrice: pulumi.String(\"1000\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.tencentcloud.Images.ImagesFunctions;\nimport com.pulumi.tencentcloud.Images.inputs.GetInstanceArgs;\nimport com.pulumi.tencentcloud.As.ScalingConfig;\nimport com.pulumi.tencentcloud.As.ScalingConfigArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var exampleInstance = ImagesFunctions.getInstance(GetInstanceArgs.builder()\n .imageTypes(\"PUBLIC_IMAGE\")\n .osName(\"TencentOS Server 3.2 (Final)\")\n .build());\n\n var exampleScalingConfig = new ScalingConfig(\"exampleScalingConfig\", ScalingConfigArgs.builder() \n .configurationName(\"launch-configuration\")\n .imageId(exampleInstance.applyValue(getInstanceResult -\u003e getInstanceResult.images()[0].imageId()))\n .instanceTypes(\"SA1.SMALL1\")\n .instanceChargeType(\"SPOTPAID\")\n .spotInstanceType(\"one-time\")\n .spotMaxPrice(\"1000\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n exampleScalingConfig:\n type: tencentcloud:As:ScalingConfig\n properties:\n configurationName: launch-configuration\n imageId: ${exampleInstance.images[0].imageId}\n instanceTypes:\n - SA1.SMALL1\n instanceChargeType: SPOTPAID\n spotInstanceType: one-time\n spotMaxPrice: '1000'\nvariables:\n exampleInstance:\n fn::invoke:\n Function: tencentcloud:Images:getInstance\n Arguments:\n imageTypes:\n - PUBLIC_IMAGE\n osName: TencentOS Server 3.2 (Final)\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Using image family\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as tencentcloud from \"@tencentcloud_iac/pulumi\";\n\nconst example = new tencentcloud.as.ScalingConfig(\"example\", {\n configurationName: \"as-test-config\",\n diskTypePolicy: \"ORIGINAL\",\n enhancedAutomationToolsService: false,\n enhancedMonitorService: false,\n enhancedSecurityService: false,\n imageFamily: \"business-daily-update\",\n instanceTags: {},\n instanceTypes: [\"S5.SMALL2\"],\n internetChargeType: \"TRAFFIC_POSTPAID_BY_HOUR\",\n internetMaxBandwidthOut: 0,\n keyIds: [],\n projectId: 0,\n publicIpAssigned: false,\n securityGroupIds: [\"sg-5275dorp\"],\n systemDiskSize: 50,\n systemDiskType: \"CLOUD_BSSD\",\n});\n```\n```python\nimport pulumi\nimport tencentcloud_iac_pulumi as tencentcloud\n\nexample = tencentcloud.as_.ScalingConfig(\"example\",\n configuration_name=\"as-test-config\",\n disk_type_policy=\"ORIGINAL\",\n enhanced_automation_tools_service=False,\n enhanced_monitor_service=False,\n enhanced_security_service=False,\n image_family=\"business-daily-update\",\n instance_tags={},\n instance_types=[\"S5.SMALL2\"],\n internet_charge_type=\"TRAFFIC_POSTPAID_BY_HOUR\",\n internet_max_bandwidth_out=0,\n key_ids=[],\n project_id=0,\n public_ip_assigned=False,\n security_group_ids=[\"sg-5275dorp\"],\n system_disk_size=50,\n system_disk_type=\"CLOUD_BSSD\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Tencentcloud = TencentCloudIAC.PulumiPackage.Tencentcloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new Tencentcloud.As.ScalingConfig(\"example\", new()\n {\n ConfigurationName = \"as-test-config\",\n DiskTypePolicy = \"ORIGINAL\",\n EnhancedAutomationToolsService = false,\n EnhancedMonitorService = false,\n EnhancedSecurityService = false,\n ImageFamily = \"business-daily-update\",\n InstanceTags = null,\n InstanceTypes = new[]\n {\n \"S5.SMALL2\",\n },\n InternetChargeType = \"TRAFFIC_POSTPAID_BY_HOUR\",\n InternetMaxBandwidthOut = 0,\n KeyIds = new[] {},\n ProjectId = 0,\n PublicIpAssigned = false,\n SecurityGroupIds = new[]\n {\n \"sg-5275dorp\",\n },\n SystemDiskSize = 50,\n SystemDiskType = \"CLOUD_BSSD\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/tencentcloudstack/pulumi-tencentcloud/sdk/go/tencentcloud/As\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := As.NewScalingConfig(ctx, \"example\", \u0026As.ScalingConfigArgs{\n\t\t\tConfigurationName: pulumi.String(\"as-test-config\"),\n\t\t\tDiskTypePolicy: pulumi.String(\"ORIGINAL\"),\n\t\t\tEnhancedAutomationToolsService: pulumi.Bool(false),\n\t\t\tEnhancedMonitorService: pulumi.Bool(false),\n\t\t\tEnhancedSecurityService: pulumi.Bool(false),\n\t\t\tImageFamily: pulumi.String(\"business-daily-update\"),\n\t\t\tInstanceTags: nil,\n\t\t\tInstanceTypes: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"S5.SMALL2\"),\n\t\t\t},\n\t\t\tInternetChargeType: pulumi.String(\"TRAFFIC_POSTPAID_BY_HOUR\"),\n\t\t\tInternetMaxBandwidthOut: pulumi.Int(0),\n\t\t\tKeyIds: pulumi.StringArray{},\n\t\t\tProjectId: pulumi.Int(0),\n\t\t\tPublicIpAssigned: pulumi.Bool(false),\n\t\t\tSecurityGroupIds: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"sg-5275dorp\"),\n\t\t\t},\n\t\t\tSystemDiskSize: pulumi.Int(50),\n\t\t\tSystemDiskType: pulumi.String(\"CLOUD_BSSD\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.tencentcloud.As.ScalingConfig;\nimport com.pulumi.tencentcloud.As.ScalingConfigArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 ScalingConfig(\"example\", ScalingConfigArgs.builder() \n .configurationName(\"as-test-config\")\n .diskTypePolicy(\"ORIGINAL\")\n .enhancedAutomationToolsService(false)\n .enhancedMonitorService(false)\n .enhancedSecurityService(false)\n .imageFamily(\"business-daily-update\")\n .instanceTags()\n .instanceTypes(\"S5.SMALL2\")\n .internetChargeType(\"TRAFFIC_POSTPAID_BY_HOUR\")\n .internetMaxBandwidthOut(0)\n .keyIds()\n .projectId(0)\n .publicIpAssigned(false)\n .securityGroupIds(\"sg-5275dorp\")\n .systemDiskSize(50)\n .systemDiskType(\"CLOUD_BSSD\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: tencentcloud:As:ScalingConfig\n properties:\n configurationName: as-test-config\n diskTypePolicy: ORIGINAL\n enhancedAutomationToolsService: false\n enhancedMonitorService: false\n enhancedSecurityService: false\n imageFamily: business-daily-update\n instanceTags: {}\n instanceTypes:\n - S5.SMALL2\n internetChargeType: TRAFFIC_POSTPAID_BY_HOUR\n internetMaxBandwidthOut: 0\n keyIds: []\n projectId: 0\n publicIpAssigned: false\n securityGroupIds:\n - sg-5275dorp\n systemDiskSize: 50\n systemDiskType: CLOUD_BSSD\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nAutoScaling Configuration can be imported using the id, e.g.\n\n```sh\n$ pulumi import tencentcloud:As/scalingConfig:ScalingConfig example asc-n32ymck2\n```\n", + "description": "Provides a resource to create a configuration for an AS (Auto scaling) instance.\n\n\u003e **NOTE:** In order to ensure the integrity of customer data, if the cvm instance was destroyed due to shrinking, it will keep the cbs associate with cvm by default. If you want to destroy together, please set `delete_with_instance` to `true`.\n\n## Example Usage\n\n### Create a normal configuration\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as tencentcloud from \"@tencentcloud_iac/pulumi\";\nimport * as tencentcloud from \"@tencentcloud_iac/pulumi\";\n\nconst exampleInstance = tencentcloud.Images.getInstance({\n imageTypes: [\"PUBLIC_IMAGE\"],\n osName: \"TencentOS Server 4 for x86_64\",\n});\nconst exampleScalingConfig = new tencentcloud.as.ScalingConfig(\"exampleScalingConfig\", {\n configurationName: \"tf-example\",\n imageId: exampleInstance.then(exampleInstance =\u003e exampleInstance.images?.[0]?.imageId),\n instanceTypes: [\"SA5.MEDIUM4\"],\n projectId: 0,\n systemDiskType: \"CLOUD_PREMIUM\",\n systemDiskSize: 50,\n dataDisks: [{\n diskType: \"CLOUD_PREMIUM\",\n diskSize: 50,\n }],\n internetChargeType: \"TRAFFIC_POSTPAID_BY_HOUR\",\n internetMaxBandwidthOut: 10,\n publicIpAssigned: true,\n password: \"Test@123#\",\n enhancedSecurityService: false,\n enhancedMonitorService: false,\n enhancedAutomationToolsService: false,\n userData: \"dGVzdA==\",\n hostNameSettings: {\n hostName: \"host-name\",\n hostNameStyle: \"UNIQUE\",\n },\n instanceTags: {\n tag: \"example\",\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_tencentcloud as tencentcloud\nimport tencentcloud_iac_pulumi as tencentcloud\n\nexample_instance = tencentcloud.Images.get_instance(image_types=[\"PUBLIC_IMAGE\"],\n os_name=\"TencentOS Server 4 for x86_64\")\nexample_scaling_config = tencentcloud.as_.ScalingConfig(\"exampleScalingConfig\",\n configuration_name=\"tf-example\",\n image_id=example_instance.images[0].image_id,\n instance_types=[\"SA5.MEDIUM4\"],\n project_id=0,\n system_disk_type=\"CLOUD_PREMIUM\",\n system_disk_size=50,\n data_disks=[tencentcloud.as_.ScalingConfigDataDiskArgs(\n disk_type=\"CLOUD_PREMIUM\",\n disk_size=50,\n )],\n internet_charge_type=\"TRAFFIC_POSTPAID_BY_HOUR\",\n internet_max_bandwidth_out=10,\n public_ip_assigned=True,\n password=\"Test@123#\",\n enhanced_security_service=False,\n enhanced_monitor_service=False,\n enhanced_automation_tools_service=False,\n user_data=\"dGVzdA==\",\n host_name_settings=tencentcloud.as_.ScalingConfigHostNameSettingsArgs(\n host_name=\"host-name\",\n host_name_style=\"UNIQUE\",\n ),\n instance_tags={\n \"tag\": \"example\",\n })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Tencentcloud = Pulumi.Tencentcloud;\nusing Tencentcloud = TencentCloudIAC.PulumiPackage.Tencentcloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var exampleInstance = Tencentcloud.Images.GetInstance.Invoke(new()\n {\n ImageTypes = new[]\n {\n \"PUBLIC_IMAGE\",\n },\n OsName = \"TencentOS Server 4 for x86_64\",\n });\n\n var exampleScalingConfig = new Tencentcloud.As.ScalingConfig(\"exampleScalingConfig\", new()\n {\n ConfigurationName = \"tf-example\",\n ImageId = exampleInstance.Apply(getInstanceResult =\u003e getInstanceResult.Images[0]?.ImageId),\n InstanceTypes = new[]\n {\n \"SA5.MEDIUM4\",\n },\n ProjectId = 0,\n SystemDiskType = \"CLOUD_PREMIUM\",\n SystemDiskSize = 50,\n DataDisks = new[]\n {\n new Tencentcloud.As.Inputs.ScalingConfigDataDiskArgs\n {\n DiskType = \"CLOUD_PREMIUM\",\n DiskSize = 50,\n },\n },\n InternetChargeType = \"TRAFFIC_POSTPAID_BY_HOUR\",\n InternetMaxBandwidthOut = 10,\n PublicIpAssigned = true,\n Password = \"Test@123#\",\n EnhancedSecurityService = false,\n EnhancedMonitorService = false,\n EnhancedAutomationToolsService = false,\n UserData = \"dGVzdA==\",\n HostNameSettings = new Tencentcloud.As.Inputs.ScalingConfigHostNameSettingsArgs\n {\n HostName = \"host-name\",\n HostNameStyle = \"UNIQUE\",\n },\n InstanceTags = \n {\n { \"tag\", \"example\" },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/tencentcloudstack/pulumi-tencentcloud/sdk/go/tencentcloud/As\"\n\t\"github.com/tencentcloudstack/pulumi-tencentcloud/sdk/go/tencentcloud/Images\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleInstance, err := Images.GetInstance(ctx, \u0026images.GetInstanceArgs{\n\t\t\tImageTypes: []string{\n\t\t\t\t\"PUBLIC_IMAGE\",\n\t\t\t},\n\t\t\tOsName: pulumi.StringRef(\"TencentOS Server 4 for x86_64\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = As.NewScalingConfig(ctx, \"exampleScalingConfig\", \u0026As.ScalingConfigArgs{\n\t\t\tConfigurationName: pulumi.String(\"tf-example\"),\n\t\t\tImageId: pulumi.String(exampleInstance.Images[0].ImageId),\n\t\t\tInstanceTypes: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"SA5.MEDIUM4\"),\n\t\t\t},\n\t\t\tProjectId: pulumi.Int(0),\n\t\t\tSystemDiskType: pulumi.String(\"CLOUD_PREMIUM\"),\n\t\t\tSystemDiskSize: pulumi.Int(50),\n\t\t\tDataDisks: as.ScalingConfigDataDiskArray{\n\t\t\t\t\u0026as.ScalingConfigDataDiskArgs{\n\t\t\t\t\tDiskType: pulumi.String(\"CLOUD_PREMIUM\"),\n\t\t\t\t\tDiskSize: pulumi.Int(50),\n\t\t\t\t},\n\t\t\t},\n\t\t\tInternetChargeType: pulumi.String(\"TRAFFIC_POSTPAID_BY_HOUR\"),\n\t\t\tInternetMaxBandwidthOut: pulumi.Int(10),\n\t\t\tPublicIpAssigned: pulumi.Bool(true),\n\t\t\tPassword: pulumi.String(\"Test@123#\"),\n\t\t\tEnhancedSecurityService: pulumi.Bool(false),\n\t\t\tEnhancedMonitorService: pulumi.Bool(false),\n\t\t\tEnhancedAutomationToolsService: pulumi.Bool(false),\n\t\t\tUserData: pulumi.String(\"dGVzdA==\"),\n\t\t\tHostNameSettings: \u0026as.ScalingConfigHostNameSettingsArgs{\n\t\t\t\tHostName: pulumi.String(\"host-name\"),\n\t\t\t\tHostNameStyle: pulumi.String(\"UNIQUE\"),\n\t\t\t},\n\t\t\tInstanceTags: pulumi.Map{\n\t\t\t\t\"tag\": pulumi.Any(\"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.tencentcloud.Images.ImagesFunctions;\nimport com.pulumi.tencentcloud.Images.inputs.GetInstanceArgs;\nimport com.pulumi.tencentcloud.As.ScalingConfig;\nimport com.pulumi.tencentcloud.As.ScalingConfigArgs;\nimport com.pulumi.tencentcloud.As.inputs.ScalingConfigDataDiskArgs;\nimport com.pulumi.tencentcloud.As.inputs.ScalingConfigHostNameSettingsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var exampleInstance = ImagesFunctions.getInstance(GetInstanceArgs.builder()\n .imageTypes(\"PUBLIC_IMAGE\")\n .osName(\"TencentOS Server 4 for x86_64\")\n .build());\n\n var exampleScalingConfig = new ScalingConfig(\"exampleScalingConfig\", ScalingConfigArgs.builder() \n .configurationName(\"tf-example\")\n .imageId(exampleInstance.applyValue(getInstanceResult -\u003e getInstanceResult.images()[0].imageId()))\n .instanceTypes(\"SA5.MEDIUM4\")\n .projectId(0)\n .systemDiskType(\"CLOUD_PREMIUM\")\n .systemDiskSize(\"50\")\n .dataDisks(ScalingConfigDataDiskArgs.builder()\n .diskType(\"CLOUD_PREMIUM\")\n .diskSize(50)\n .build())\n .internetChargeType(\"TRAFFIC_POSTPAID_BY_HOUR\")\n .internetMaxBandwidthOut(10)\n .publicIpAssigned(true)\n .password(\"Test@123#\")\n .enhancedSecurityService(false)\n .enhancedMonitorService(false)\n .enhancedAutomationToolsService(false)\n .userData(\"dGVzdA==\")\n .hostNameSettings(ScalingConfigHostNameSettingsArgs.builder()\n .hostName(\"host-name\")\n .hostNameStyle(\"UNIQUE\")\n .build())\n .instanceTags(Map.of(\"tag\", \"example\"))\n .build());\n\n }\n}\n```\n```yaml\nresources:\n exampleScalingConfig:\n type: tencentcloud:As:ScalingConfig\n properties:\n configurationName: tf-example\n imageId: ${exampleInstance.images[0].imageId}\n instanceTypes:\n - SA5.MEDIUM4\n projectId: 0\n systemDiskType: CLOUD_PREMIUM\n systemDiskSize: '50'\n dataDisks:\n - diskType: CLOUD_PREMIUM\n diskSize: 50\n internetChargeType: TRAFFIC_POSTPAID_BY_HOUR\n internetMaxBandwidthOut: 10\n publicIpAssigned: true\n password: Test@123#\n enhancedSecurityService: false\n enhancedMonitorService: false\n enhancedAutomationToolsService: false\n userData: dGVzdA==\n hostNameSettings:\n hostName: host-name\n hostNameStyle: UNIQUE\n instanceTags:\n tag: example\nvariables:\n exampleInstance:\n fn::invoke:\n Function: tencentcloud:Images:getInstance\n Arguments:\n imageTypes:\n - PUBLIC_IMAGE\n osName: TencentOS Server 4 for x86_64\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### charge type\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as tencentcloud from \"@tencentcloud_iac/pulumi\";\nimport * as tencentcloud from \"@tencentcloud_iac/pulumi\";\n\nconst exampleInstance = tencentcloud.Images.getInstance({\n imageTypes: [\"PUBLIC_IMAGE\"],\n osName: \"TencentOS Server 4 for x86_64\",\n});\nconst exampleScalingConfig = new tencentcloud.as.ScalingConfig(\"exampleScalingConfig\", {\n configurationName: \"tf-example\",\n imageId: exampleInstance.then(exampleInstance =\u003e exampleInstance.images?.[0]?.imageId),\n instanceTypes: [\"SA5.MEDIUM4\"],\n instanceChargeType: \"SPOTPAID\",\n spotInstanceType: \"one-time\",\n spotMaxPrice: \"1000\",\n});\n```\n```python\nimport pulumi\nimport pulumi_tencentcloud as tencentcloud\nimport tencentcloud_iac_pulumi as tencentcloud\n\nexample_instance = tencentcloud.Images.get_instance(image_types=[\"PUBLIC_IMAGE\"],\n os_name=\"TencentOS Server 4 for x86_64\")\nexample_scaling_config = tencentcloud.as_.ScalingConfig(\"exampleScalingConfig\",\n configuration_name=\"tf-example\",\n image_id=example_instance.images[0].image_id,\n instance_types=[\"SA5.MEDIUM4\"],\n instance_charge_type=\"SPOTPAID\",\n spot_instance_type=\"one-time\",\n spot_max_price=\"1000\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Tencentcloud = Pulumi.Tencentcloud;\nusing Tencentcloud = TencentCloudIAC.PulumiPackage.Tencentcloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var exampleInstance = Tencentcloud.Images.GetInstance.Invoke(new()\n {\n ImageTypes = new[]\n {\n \"PUBLIC_IMAGE\",\n },\n OsName = \"TencentOS Server 4 for x86_64\",\n });\n\n var exampleScalingConfig = new Tencentcloud.As.ScalingConfig(\"exampleScalingConfig\", new()\n {\n ConfigurationName = \"tf-example\",\n ImageId = exampleInstance.Apply(getInstanceResult =\u003e getInstanceResult.Images[0]?.ImageId),\n InstanceTypes = new[]\n {\n \"SA5.MEDIUM4\",\n },\n InstanceChargeType = \"SPOTPAID\",\n SpotInstanceType = \"one-time\",\n SpotMaxPrice = \"1000\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/tencentcloudstack/pulumi-tencentcloud/sdk/go/tencentcloud/As\"\n\t\"github.com/tencentcloudstack/pulumi-tencentcloud/sdk/go/tencentcloud/Images\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleInstance, err := Images.GetInstance(ctx, \u0026images.GetInstanceArgs{\n\t\t\tImageTypes: []string{\n\t\t\t\t\"PUBLIC_IMAGE\",\n\t\t\t},\n\t\t\tOsName: pulumi.StringRef(\"TencentOS Server 4 for x86_64\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = As.NewScalingConfig(ctx, \"exampleScalingConfig\", \u0026As.ScalingConfigArgs{\n\t\t\tConfigurationName: pulumi.String(\"tf-example\"),\n\t\t\tImageId: pulumi.String(exampleInstance.Images[0].ImageId),\n\t\t\tInstanceTypes: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"SA5.MEDIUM4\"),\n\t\t\t},\n\t\t\tInstanceChargeType: pulumi.String(\"SPOTPAID\"),\n\t\t\tSpotInstanceType: pulumi.String(\"one-time\"),\n\t\t\tSpotMaxPrice: pulumi.String(\"1000\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.tencentcloud.Images.ImagesFunctions;\nimport com.pulumi.tencentcloud.Images.inputs.GetInstanceArgs;\nimport com.pulumi.tencentcloud.As.ScalingConfig;\nimport com.pulumi.tencentcloud.As.ScalingConfigArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var exampleInstance = ImagesFunctions.getInstance(GetInstanceArgs.builder()\n .imageTypes(\"PUBLIC_IMAGE\")\n .osName(\"TencentOS Server 4 for x86_64\")\n .build());\n\n var exampleScalingConfig = new ScalingConfig(\"exampleScalingConfig\", ScalingConfigArgs.builder() \n .configurationName(\"tf-example\")\n .imageId(exampleInstance.applyValue(getInstanceResult -\u003e getInstanceResult.images()[0].imageId()))\n .instanceTypes(\"SA5.MEDIUM4\")\n .instanceChargeType(\"SPOTPAID\")\n .spotInstanceType(\"one-time\")\n .spotMaxPrice(\"1000\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n exampleScalingConfig:\n type: tencentcloud:As:ScalingConfig\n properties:\n configurationName: tf-example\n imageId: ${exampleInstance.images[0].imageId}\n instanceTypes:\n - SA5.MEDIUM4\n instanceChargeType: SPOTPAID\n spotInstanceType: one-time\n spotMaxPrice: '1000'\nvariables:\n exampleInstance:\n fn::invoke:\n Function: tencentcloud:Images:getInstance\n Arguments:\n imageTypes:\n - PUBLIC_IMAGE\n osName: TencentOS Server 4 for x86_64\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Using image family\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as tencentcloud from \"@tencentcloud_iac/pulumi\";\n\nconst example = new tencentcloud.as.ScalingConfig(\"example\", {\n configurationName: \"as-test-config\",\n diskTypePolicy: \"ORIGINAL\",\n enhancedAutomationToolsService: false,\n enhancedMonitorService: false,\n enhancedSecurityService: false,\n imageFamily: \"business-daily-update\",\n instanceTags: {},\n instanceTypes: [\"S5.SMALL2\"],\n internetChargeType: \"TRAFFIC_POSTPAID_BY_HOUR\",\n internetMaxBandwidthOut: 0,\n keyIds: [],\n projectId: 0,\n publicIpAssigned: false,\n securityGroupIds: [\"sg-5275dorp\"],\n systemDiskSize: 50,\n systemDiskType: \"CLOUD_BSSD\",\n});\n```\n```python\nimport pulumi\nimport tencentcloud_iac_pulumi as tencentcloud\n\nexample = tencentcloud.as_.ScalingConfig(\"example\",\n configuration_name=\"as-test-config\",\n disk_type_policy=\"ORIGINAL\",\n enhanced_automation_tools_service=False,\n enhanced_monitor_service=False,\n enhanced_security_service=False,\n image_family=\"business-daily-update\",\n instance_tags={},\n instance_types=[\"S5.SMALL2\"],\n internet_charge_type=\"TRAFFIC_POSTPAID_BY_HOUR\",\n internet_max_bandwidth_out=0,\n key_ids=[],\n project_id=0,\n public_ip_assigned=False,\n security_group_ids=[\"sg-5275dorp\"],\n system_disk_size=50,\n system_disk_type=\"CLOUD_BSSD\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Tencentcloud = TencentCloudIAC.PulumiPackage.Tencentcloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new Tencentcloud.As.ScalingConfig(\"example\", new()\n {\n ConfigurationName = \"as-test-config\",\n DiskTypePolicy = \"ORIGINAL\",\n EnhancedAutomationToolsService = false,\n EnhancedMonitorService = false,\n EnhancedSecurityService = false,\n ImageFamily = \"business-daily-update\",\n InstanceTags = null,\n InstanceTypes = new[]\n {\n \"S5.SMALL2\",\n },\n InternetChargeType = \"TRAFFIC_POSTPAID_BY_HOUR\",\n InternetMaxBandwidthOut = 0,\n KeyIds = new[] {},\n ProjectId = 0,\n PublicIpAssigned = false,\n SecurityGroupIds = new[]\n {\n \"sg-5275dorp\",\n },\n SystemDiskSize = 50,\n SystemDiskType = \"CLOUD_BSSD\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/tencentcloudstack/pulumi-tencentcloud/sdk/go/tencentcloud/As\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := As.NewScalingConfig(ctx, \"example\", \u0026As.ScalingConfigArgs{\n\t\t\tConfigurationName: pulumi.String(\"as-test-config\"),\n\t\t\tDiskTypePolicy: pulumi.String(\"ORIGINAL\"),\n\t\t\tEnhancedAutomationToolsService: pulumi.Bool(false),\n\t\t\tEnhancedMonitorService: pulumi.Bool(false),\n\t\t\tEnhancedSecurityService: pulumi.Bool(false),\n\t\t\tImageFamily: pulumi.String(\"business-daily-update\"),\n\t\t\tInstanceTags: nil,\n\t\t\tInstanceTypes: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"S5.SMALL2\"),\n\t\t\t},\n\t\t\tInternetChargeType: pulumi.String(\"TRAFFIC_POSTPAID_BY_HOUR\"),\n\t\t\tInternetMaxBandwidthOut: pulumi.Int(0),\n\t\t\tKeyIds: pulumi.StringArray{},\n\t\t\tProjectId: pulumi.Int(0),\n\t\t\tPublicIpAssigned: pulumi.Bool(false),\n\t\t\tSecurityGroupIds: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"sg-5275dorp\"),\n\t\t\t},\n\t\t\tSystemDiskSize: pulumi.Int(50),\n\t\t\tSystemDiskType: pulumi.String(\"CLOUD_BSSD\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.tencentcloud.As.ScalingConfig;\nimport com.pulumi.tencentcloud.As.ScalingConfigArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 ScalingConfig(\"example\", ScalingConfigArgs.builder() \n .configurationName(\"as-test-config\")\n .diskTypePolicy(\"ORIGINAL\")\n .enhancedAutomationToolsService(false)\n .enhancedMonitorService(false)\n .enhancedSecurityService(false)\n .imageFamily(\"business-daily-update\")\n .instanceTags()\n .instanceTypes(\"S5.SMALL2\")\n .internetChargeType(\"TRAFFIC_POSTPAID_BY_HOUR\")\n .internetMaxBandwidthOut(0)\n .keyIds()\n .projectId(0)\n .publicIpAssigned(false)\n .securityGroupIds(\"sg-5275dorp\")\n .systemDiskSize(50)\n .systemDiskType(\"CLOUD_BSSD\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: tencentcloud:As:ScalingConfig\n properties:\n configurationName: as-test-config\n diskTypePolicy: ORIGINAL\n enhancedAutomationToolsService: false\n enhancedMonitorService: false\n enhancedSecurityService: false\n imageFamily: business-daily-update\n instanceTags: {}\n instanceTypes:\n - S5.SMALL2\n internetChargeType: TRAFFIC_POSTPAID_BY_HOUR\n internetMaxBandwidthOut: 0\n keyIds: []\n projectId: 0\n publicIpAssigned: false\n securityGroupIds:\n - sg-5275dorp\n systemDiskSize: 50\n systemDiskType: CLOUD_BSSD\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Create a CDC configuration\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as tencentcloud from \"@tencentcloud_iac/pulumi\";\nimport * as tencentcloud from \"@tencentcloud_iac/pulumi\";\n\nconst exampleInstance = tencentcloud.Images.getInstance({\n imageTypes: [\"PUBLIC_IMAGE\"],\n osName: \"TencentOS Server 4 for x86_64\",\n});\nconst exampleScalingConfig = new tencentcloud.as.ScalingConfig(\"exampleScalingConfig\", {\n configurationName: \"tf-example\",\n imageId: exampleInstance.then(exampleInstance =\u003e exampleInstance.images?.[0]?.imageId),\n instanceTypes: [\"SA5.MEDIUM4\"],\n projectId: 0,\n systemDiskType: \"CLOUD_PREMIUM\",\n systemDiskSize: 50,\n instanceChargeType: \"CDCPAID\",\n dedicatedClusterId: \"cluster-262n63e8\",\n dataDisks: [{\n diskType: \"CLOUD_PREMIUM\",\n diskSize: 50,\n }],\n internetChargeType: \"TRAFFIC_POSTPAID_BY_HOUR\",\n internetMaxBandwidthOut: 10,\n publicIpAssigned: true,\n password: \"Test@123#\",\n enhancedSecurityService: false,\n enhancedMonitorService: false,\n enhancedAutomationToolsService: false,\n userData: \"dGVzdA==\",\n hostNameSettings: {\n hostName: \"host-name\",\n hostNameStyle: \"UNIQUE\",\n },\n instanceTags: {\n tag: \"example\",\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_tencentcloud as tencentcloud\nimport tencentcloud_iac_pulumi as tencentcloud\n\nexample_instance = tencentcloud.Images.get_instance(image_types=[\"PUBLIC_IMAGE\"],\n os_name=\"TencentOS Server 4 for x86_64\")\nexample_scaling_config = tencentcloud.as_.ScalingConfig(\"exampleScalingConfig\",\n configuration_name=\"tf-example\",\n image_id=example_instance.images[0].image_id,\n instance_types=[\"SA5.MEDIUM4\"],\n project_id=0,\n system_disk_type=\"CLOUD_PREMIUM\",\n system_disk_size=50,\n instance_charge_type=\"CDCPAID\",\n dedicated_cluster_id=\"cluster-262n63e8\",\n data_disks=[tencentcloud.as_.ScalingConfigDataDiskArgs(\n disk_type=\"CLOUD_PREMIUM\",\n disk_size=50,\n )],\n internet_charge_type=\"TRAFFIC_POSTPAID_BY_HOUR\",\n internet_max_bandwidth_out=10,\n public_ip_assigned=True,\n password=\"Test@123#\",\n enhanced_security_service=False,\n enhanced_monitor_service=False,\n enhanced_automation_tools_service=False,\n user_data=\"dGVzdA==\",\n host_name_settings=tencentcloud.as_.ScalingConfigHostNameSettingsArgs(\n host_name=\"host-name\",\n host_name_style=\"UNIQUE\",\n ),\n instance_tags={\n \"tag\": \"example\",\n })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Tencentcloud = Pulumi.Tencentcloud;\nusing Tencentcloud = TencentCloudIAC.PulumiPackage.Tencentcloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var exampleInstance = Tencentcloud.Images.GetInstance.Invoke(new()\n {\n ImageTypes = new[]\n {\n \"PUBLIC_IMAGE\",\n },\n OsName = \"TencentOS Server 4 for x86_64\",\n });\n\n var exampleScalingConfig = new Tencentcloud.As.ScalingConfig(\"exampleScalingConfig\", new()\n {\n ConfigurationName = \"tf-example\",\n ImageId = exampleInstance.Apply(getInstanceResult =\u003e getInstanceResult.Images[0]?.ImageId),\n InstanceTypes = new[]\n {\n \"SA5.MEDIUM4\",\n },\n ProjectId = 0,\n SystemDiskType = \"CLOUD_PREMIUM\",\n SystemDiskSize = 50,\n InstanceChargeType = \"CDCPAID\",\n DedicatedClusterId = \"cluster-262n63e8\",\n DataDisks = new[]\n {\n new Tencentcloud.As.Inputs.ScalingConfigDataDiskArgs\n {\n DiskType = \"CLOUD_PREMIUM\",\n DiskSize = 50,\n },\n },\n InternetChargeType = \"TRAFFIC_POSTPAID_BY_HOUR\",\n InternetMaxBandwidthOut = 10,\n PublicIpAssigned = true,\n Password = \"Test@123#\",\n EnhancedSecurityService = false,\n EnhancedMonitorService = false,\n EnhancedAutomationToolsService = false,\n UserData = \"dGVzdA==\",\n HostNameSettings = new Tencentcloud.As.Inputs.ScalingConfigHostNameSettingsArgs\n {\n HostName = \"host-name\",\n HostNameStyle = \"UNIQUE\",\n },\n InstanceTags = \n {\n { \"tag\", \"example\" },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/tencentcloudstack/pulumi-tencentcloud/sdk/go/tencentcloud/As\"\n\t\"github.com/tencentcloudstack/pulumi-tencentcloud/sdk/go/tencentcloud/Images\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleInstance, err := Images.GetInstance(ctx, \u0026images.GetInstanceArgs{\n\t\t\tImageTypes: []string{\n\t\t\t\t\"PUBLIC_IMAGE\",\n\t\t\t},\n\t\t\tOsName: pulumi.StringRef(\"TencentOS Server 4 for x86_64\"),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = As.NewScalingConfig(ctx, \"exampleScalingConfig\", \u0026As.ScalingConfigArgs{\n\t\t\tConfigurationName: pulumi.String(\"tf-example\"),\n\t\t\tImageId: pulumi.String(exampleInstance.Images[0].ImageId),\n\t\t\tInstanceTypes: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"SA5.MEDIUM4\"),\n\t\t\t},\n\t\t\tProjectId: pulumi.Int(0),\n\t\t\tSystemDiskType: pulumi.String(\"CLOUD_PREMIUM\"),\n\t\t\tSystemDiskSize: pulumi.Int(50),\n\t\t\tInstanceChargeType: pulumi.String(\"CDCPAID\"),\n\t\t\tDedicatedClusterId: pulumi.String(\"cluster-262n63e8\"),\n\t\t\tDataDisks: as.ScalingConfigDataDiskArray{\n\t\t\t\t\u0026as.ScalingConfigDataDiskArgs{\n\t\t\t\t\tDiskType: pulumi.String(\"CLOUD_PREMIUM\"),\n\t\t\t\t\tDiskSize: pulumi.Int(50),\n\t\t\t\t},\n\t\t\t},\n\t\t\tInternetChargeType: pulumi.String(\"TRAFFIC_POSTPAID_BY_HOUR\"),\n\t\t\tInternetMaxBandwidthOut: pulumi.Int(10),\n\t\t\tPublicIpAssigned: pulumi.Bool(true),\n\t\t\tPassword: pulumi.String(\"Test@123#\"),\n\t\t\tEnhancedSecurityService: pulumi.Bool(false),\n\t\t\tEnhancedMonitorService: pulumi.Bool(false),\n\t\t\tEnhancedAutomationToolsService: pulumi.Bool(false),\n\t\t\tUserData: pulumi.String(\"dGVzdA==\"),\n\t\t\tHostNameSettings: \u0026as.ScalingConfigHostNameSettingsArgs{\n\t\t\t\tHostName: pulumi.String(\"host-name\"),\n\t\t\t\tHostNameStyle: pulumi.String(\"UNIQUE\"),\n\t\t\t},\n\t\t\tInstanceTags: pulumi.Map{\n\t\t\t\t\"tag\": pulumi.Any(\"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.tencentcloud.Images.ImagesFunctions;\nimport com.pulumi.tencentcloud.Images.inputs.GetInstanceArgs;\nimport com.pulumi.tencentcloud.As.ScalingConfig;\nimport com.pulumi.tencentcloud.As.ScalingConfigArgs;\nimport com.pulumi.tencentcloud.As.inputs.ScalingConfigDataDiskArgs;\nimport com.pulumi.tencentcloud.As.inputs.ScalingConfigHostNameSettingsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var exampleInstance = ImagesFunctions.getInstance(GetInstanceArgs.builder()\n .imageTypes(\"PUBLIC_IMAGE\")\n .osName(\"TencentOS Server 4 for x86_64\")\n .build());\n\n var exampleScalingConfig = new ScalingConfig(\"exampleScalingConfig\", ScalingConfigArgs.builder() \n .configurationName(\"tf-example\")\n .imageId(exampleInstance.applyValue(getInstanceResult -\u003e getInstanceResult.images()[0].imageId()))\n .instanceTypes(\"SA5.MEDIUM4\")\n .projectId(0)\n .systemDiskType(\"CLOUD_PREMIUM\")\n .systemDiskSize(\"50\")\n .instanceChargeType(\"CDCPAID\")\n .dedicatedClusterId(\"cluster-262n63e8\")\n .dataDisks(ScalingConfigDataDiskArgs.builder()\n .diskType(\"CLOUD_PREMIUM\")\n .diskSize(50)\n .build())\n .internetChargeType(\"TRAFFIC_POSTPAID_BY_HOUR\")\n .internetMaxBandwidthOut(10)\n .publicIpAssigned(true)\n .password(\"Test@123#\")\n .enhancedSecurityService(false)\n .enhancedMonitorService(false)\n .enhancedAutomationToolsService(false)\n .userData(\"dGVzdA==\")\n .hostNameSettings(ScalingConfigHostNameSettingsArgs.builder()\n .hostName(\"host-name\")\n .hostNameStyle(\"UNIQUE\")\n .build())\n .instanceTags(Map.of(\"tag\", \"example\"))\n .build());\n\n }\n}\n```\n```yaml\nresources:\n exampleScalingConfig:\n type: tencentcloud:As:ScalingConfig\n properties:\n configurationName: tf-example\n imageId: ${exampleInstance.images[0].imageId}\n instanceTypes:\n - SA5.MEDIUM4\n projectId: 0\n systemDiskType: CLOUD_PREMIUM\n systemDiskSize: '50'\n instanceChargeType: CDCPAID\n dedicatedClusterId: cluster-262n63e8\n dataDisks:\n - diskType: CLOUD_PREMIUM\n diskSize: 50\n internetChargeType: TRAFFIC_POSTPAID_BY_HOUR\n internetMaxBandwidthOut: 10\n publicIpAssigned: true\n password: Test@123#\n enhancedSecurityService: false\n enhancedMonitorService: false\n enhancedAutomationToolsService: false\n userData: dGVzdA==\n hostNameSettings:\n hostName: host-name\n hostNameStyle: UNIQUE\n instanceTags:\n tag: example\nvariables:\n exampleInstance:\n fn::invoke:\n Function: tencentcloud:Images:getInstance\n Arguments:\n imageTypes:\n - PUBLIC_IMAGE\n osName: TencentOS Server 4 for x86_64\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nAutoScaling Configuration can be imported using the id, e.g.\n\n```sh\n$ pulumi import tencentcloud:As/scalingConfig:ScalingConfig example asc-n32ymck2\n```\n", "properties": { "camRoleName": { "type": "string", @@ -126669,6 +126871,10 @@ }, "description": "Configurations of data disk.\n" }, + "dedicatedClusterId": { + "type": "string", + "description": "Dedicated Cluster ID.\n" + }, "diskTypePolicy": { "type": "string", "description": "Policy of cloud disk type. Valid values: `ORIGINAL` and `AUTOMATIC`. Default is `ORIGINAL`.\n" @@ -126699,7 +126905,7 @@ }, "instanceChargeType": { "type": "string", - "description": "Charge type of instance. Valid values are `PREPAID`, `POSTPAID_BY_HOUR`, `SPOTPAID`. The default is `POSTPAID_BY_HOUR`. NOTE: `SPOTPAID` instance must set `spot_instance_type` and `spot_max_price` at the same time.\n" + "description": "Charge type of instance. Valid values are `PREPAID`, `POSTPAID_BY_HOUR`, `SPOTPAID`, `CDCPAID`. The default is `POSTPAID_BY_HOUR`. NOTE: `SPOTPAID` instance must set `spot_instance_type` and `spot_max_price` at the same time.\n" }, "instanceChargeTypePrepaidPeriod": { "type": "integer", @@ -126814,6 +127020,10 @@ }, "description": "Configurations of data disk.\n" }, + "dedicatedClusterId": { + "type": "string", + "description": "Dedicated Cluster ID.\n" + }, "diskTypePolicy": { "type": "string", "description": "Policy of cloud disk type. Valid values: `ORIGINAL` and `AUTOMATIC`. Default is `ORIGINAL`.\n" @@ -126844,7 +127054,7 @@ }, "instanceChargeType": { "type": "string", - "description": "Charge type of instance. Valid values are `PREPAID`, `POSTPAID_BY_HOUR`, `SPOTPAID`. The default is `POSTPAID_BY_HOUR`. NOTE: `SPOTPAID` instance must set `spot_instance_type` and `spot_max_price` at the same time.\n" + "description": "Charge type of instance. Valid values are `PREPAID`, `POSTPAID_BY_HOUR`, `SPOTPAID`, `CDCPAID`. The default is `POSTPAID_BY_HOUR`. NOTE: `SPOTPAID` instance must set `spot_instance_type` and `spot_max_price` at the same time.\n" }, "instanceChargeTypePrepaidPeriod": { "type": "integer", @@ -126958,6 +127168,10 @@ }, "description": "Configurations of data disk.\n" }, + "dedicatedClusterId": { + "type": "string", + "description": "Dedicated Cluster ID.\n" + }, "diskTypePolicy": { "type": "string", "description": "Policy of cloud disk type. Valid values: `ORIGINAL` and `AUTOMATIC`. Default is `ORIGINAL`.\n" @@ -126988,7 +127202,7 @@ }, "instanceChargeType": { "type": "string", - "description": "Charge type of instance. Valid values are `PREPAID`, `POSTPAID_BY_HOUR`, `SPOTPAID`. The default is `POSTPAID_BY_HOUR`. NOTE: `SPOTPAID` instance must set `spot_instance_type` and `spot_max_price` at the same time.\n" + "description": "Charge type of instance. Valid values are `PREPAID`, `POSTPAID_BY_HOUR`, `SPOTPAID`, `CDCPAID`. The default is `POSTPAID_BY_HOUR`. NOTE: `SPOTPAID` instance must set `spot_instance_type` and `spot_max_price` at the same time.\n" }, "instanceChargeTypePrepaidPeriod": { "type": "integer", @@ -142294,6 +142508,10 @@ "type": "string", "description": "ID of CLB listener.\n" }, + "oauth": { + "$ref": "#/types/tencentcloud:Clb/ListenerRuleOauth:ListenerRuleOauth", + "description": "OAuth configuration information.\n" + }, "quic": { "type": "boolean", "description": "Whether to enable QUIC. Note: QUIC can be enabled only for HTTPS domain names.\n" @@ -142336,6 +142554,7 @@ "healthCheckUnhealthNum", "http2Switch", "listenerId", + "oauth", "quic", "ruleId", "url" @@ -142423,6 +142642,10 @@ "description": "ID of CLB listener.\n", "willReplaceOnChanges": true }, + "oauth": { + "$ref": "#/types/tencentcloud:Clb/ListenerRuleOauth:ListenerRuleOauth", + "description": "OAuth configuration information.\n" + }, "quic": { "type": "boolean", "description": "Whether to enable QUIC. Note: QUIC can be enabled only for HTTPS domain names.\n" @@ -142535,6 +142758,10 @@ "description": "ID of CLB listener.\n", "willReplaceOnChanges": true }, + "oauth": { + "$ref": "#/types/tencentcloud:Clb/ListenerRuleOauth:ListenerRuleOauth", + "description": "OAuth configuration information.\n" + }, "quic": { "type": "boolean", "description": "Whether to enable QUIC. Note: QUIC can be enabled only for HTTPS domain names.\n" @@ -144439,6 +144666,147 @@ "type": "object" } }, + "tencentcloud:Cls/cloudProductLogTask:CloudProductLogTask": { + "description": "Provides a resource to create a cls cloud product log task\n\n\u003e **NOTE:** Using this resource will create new `logset` and `topic`\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as tencentcloud from \"@tencentcloud_iac/pulumi\";\n\nconst example = new tencentcloud.cls.CloudProductLogTask(\"example\", {\n assumerName: \"PostgreSQL\",\n cloudProductRegion: \"gz\",\n clsRegion: \"ap-guangzhou\",\n instanceId: \"postgres-1p7xvpc1\",\n logType: \"PostgreSQL-SLOW\",\n logsetName: \"tf-example\",\n topicName: \"tf-example\",\n});\n```\n```python\nimport pulumi\nimport tencentcloud_iac_pulumi as tencentcloud\n\nexample = tencentcloud.cls.CloudProductLogTask(\"example\",\n assumer_name=\"PostgreSQL\",\n cloud_product_region=\"gz\",\n cls_region=\"ap-guangzhou\",\n instance_id=\"postgres-1p7xvpc1\",\n log_type=\"PostgreSQL-SLOW\",\n logset_name=\"tf-example\",\n topic_name=\"tf-example\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Tencentcloud = TencentCloudIAC.PulumiPackage.Tencentcloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new Tencentcloud.Cls.CloudProductLogTask(\"example\", new()\n {\n AssumerName = \"PostgreSQL\",\n CloudProductRegion = \"gz\",\n ClsRegion = \"ap-guangzhou\",\n InstanceId = \"postgres-1p7xvpc1\",\n LogType = \"PostgreSQL-SLOW\",\n LogsetName = \"tf-example\",\n TopicName = \"tf-example\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/tencentcloudstack/pulumi-tencentcloud/sdk/go/tencentcloud/Cls\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := Cls.NewCloudProductLogTask(ctx, \"example\", \u0026Cls.CloudProductLogTaskArgs{\n\t\t\tAssumerName: pulumi.String(\"PostgreSQL\"),\n\t\t\tCloudProductRegion: pulumi.String(\"gz\"),\n\t\t\tClsRegion: pulumi.String(\"ap-guangzhou\"),\n\t\t\tInstanceId: pulumi.String(\"postgres-1p7xvpc1\"),\n\t\t\tLogType: pulumi.String(\"PostgreSQL-SLOW\"),\n\t\t\tLogsetName: pulumi.String(\"tf-example\"),\n\t\t\tTopicName: 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.tencentcloud.Cls.CloudProductLogTask;\nimport com.pulumi.tencentcloud.Cls.CloudProductLogTaskArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 CloudProductLogTask(\"example\", CloudProductLogTaskArgs.builder() \n .assumerName(\"PostgreSQL\")\n .cloudProductRegion(\"gz\")\n .clsRegion(\"ap-guangzhou\")\n .instanceId(\"postgres-1p7xvpc1\")\n .logType(\"PostgreSQL-SLOW\")\n .logsetName(\"tf-example\")\n .topicName(\"tf-example\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: tencentcloud:Cls:CloudProductLogTask\n properties:\n assumerName: PostgreSQL\n cloudProductRegion: gz\n clsRegion: ap-guangzhou\n instanceId: postgres-1p7xvpc1\n logType: PostgreSQL-SLOW\n logsetName: tf-example\n topicName: tf-example\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\ncls cloud product log task can be imported using the id, e.g.\n\n```sh\n$ pulumi import tencentcloud:Cls/cloudProductLogTask:CloudProductLogTask example postgres-1p7xvpc1#PostgreSQL#PostgreSQL-SLOW#gz\n```\n\n", + "properties": { + "assumerName": { + "type": "string", + "description": "Cloud product identification, Values: CDS, CWP, CDB, TDSQL-C, MongoDB, TDStore, DCDB, MariaDB, PostgreSQL, BH, APIS.\n" + }, + "cloudProductRegion": { + "type": "string", + "description": "Cloud product region. There are differences in the input format of different log types in different regions. Please refer to the following example:\n- CDS(all log type): ap-guangzhou\n- CDB-AUDIT: gz\n- TDSQL-C-AUDIT: gz\n- MongoDB-AUDIT: gz\n- MongoDB-SlowLog: ap-guangzhou\n- MongoDB-ErrorLog: ap-guangzhou\n- TDMYSQL-SLOW: gz\n- DCDB(all log type): gz\n- MariaDB(all log type): gz\n- PostgreSQL(all log type): gz\n- BH(all log type): overseas-polaris(Domestic sites overseas)/fsi-polaris(Domestic sites finance)/general-polaris(Domestic sites)/intl-sg-prod(International sites)\n- APIS(all log type): gz.\n" + }, + "clsRegion": { + "type": "string", + "description": "CLS target region.\n" + }, + "extend": { + "type": "string", + "description": "Log configuration extension information, generally used to store additional log delivery configurations.\n" + }, + "instanceId": { + "type": "string", + "description": "Instance ID.\n" + }, + "logType": { + "type": "string", + "description": "Log type, Values: CDS-AUDIT, CDS-RISK, CDB-AUDIT, TDSQL-C-AUDIT, MongoDB-AUDIT, MongoDB-SlowLog, MongoDB-ErrorLog, TDMYSQL-SLOW, DCDB-AUDIT, DCDB-SLOW, DCDB-ERROR, MariaDB-AUDIT, MariaDB-SLOW, MariaDB-ERROR, PostgreSQL-SLOW, PostgreSQL-ERROR, PostgreSQL-AUDIT, BH-FILELOG, BH-COMMANDLOG, APIS-ACCESS.\n" + }, + "logsetId": { + "type": "string", + "description": "Log set ID.\n" + }, + "logsetName": { + "type": "string", + "description": "Log set name, it will be automatically created.\n" + }, + "topicId": { + "type": "string", + "description": "Log theme ID.\n" + }, + "topicName": { + "type": "string", + "description": "The name of the log topic, it will be automatically created.\n" + } + }, + "required": [ + "assumerName", + "cloudProductRegion", + "clsRegion", + "instanceId", + "logType", + "logsetId", + "topicId" + ], + "inputProperties": { + "assumerName": { + "type": "string", + "description": "Cloud product identification, Values: CDS, CWP, CDB, TDSQL-C, MongoDB, TDStore, DCDB, MariaDB, PostgreSQL, BH, APIS.\n" + }, + "cloudProductRegion": { + "type": "string", + "description": "Cloud product region. There are differences in the input format of different log types in different regions. Please refer to the following example:\n- CDS(all log type): ap-guangzhou\n- CDB-AUDIT: gz\n- TDSQL-C-AUDIT: gz\n- MongoDB-AUDIT: gz\n- MongoDB-SlowLog: ap-guangzhou\n- MongoDB-ErrorLog: ap-guangzhou\n- TDMYSQL-SLOW: gz\n- DCDB(all log type): gz\n- MariaDB(all log type): gz\n- PostgreSQL(all log type): gz\n- BH(all log type): overseas-polaris(Domestic sites overseas)/fsi-polaris(Domestic sites finance)/general-polaris(Domestic sites)/intl-sg-prod(International sites)\n- APIS(all log type): gz.\n" + }, + "clsRegion": { + "type": "string", + "description": "CLS target region.\n" + }, + "extend": { + "type": "string", + "description": "Log configuration extension information, generally used to store additional log delivery configurations.\n" + }, + "instanceId": { + "type": "string", + "description": "Instance ID.\n" + }, + "logType": { + "type": "string", + "description": "Log type, Values: CDS-AUDIT, CDS-RISK, CDB-AUDIT, TDSQL-C-AUDIT, MongoDB-AUDIT, MongoDB-SlowLog, MongoDB-ErrorLog, TDMYSQL-SLOW, DCDB-AUDIT, DCDB-SLOW, DCDB-ERROR, MariaDB-AUDIT, MariaDB-SLOW, MariaDB-ERROR, PostgreSQL-SLOW, PostgreSQL-ERROR, PostgreSQL-AUDIT, BH-FILELOG, BH-COMMANDLOG, APIS-ACCESS.\n" + }, + "logsetName": { + "type": "string", + "description": "Log set name, it will be automatically created.\n" + }, + "topicName": { + "type": "string", + "description": "The name of the log topic, it will be automatically created.\n" + } + }, + "requiredInputs": [ + "assumerName", + "cloudProductRegion", + "clsRegion", + "instanceId", + "logType" + ], + "stateInputs": { + "description": "Input properties used for looking up and filtering CloudProductLogTask resources.\n", + "properties": { + "assumerName": { + "type": "string", + "description": "Cloud product identification, Values: CDS, CWP, CDB, TDSQL-C, MongoDB, TDStore, DCDB, MariaDB, PostgreSQL, BH, APIS.\n" + }, + "cloudProductRegion": { + "type": "string", + "description": "Cloud product region. There are differences in the input format of different log types in different regions. Please refer to the following example:\n- CDS(all log type): ap-guangzhou\n- CDB-AUDIT: gz\n- TDSQL-C-AUDIT: gz\n- MongoDB-AUDIT: gz\n- MongoDB-SlowLog: ap-guangzhou\n- MongoDB-ErrorLog: ap-guangzhou\n- TDMYSQL-SLOW: gz\n- DCDB(all log type): gz\n- MariaDB(all log type): gz\n- PostgreSQL(all log type): gz\n- BH(all log type): overseas-polaris(Domestic sites overseas)/fsi-polaris(Domestic sites finance)/general-polaris(Domestic sites)/intl-sg-prod(International sites)\n- APIS(all log type): gz.\n" + }, + "clsRegion": { + "type": "string", + "description": "CLS target region.\n" + }, + "extend": { + "type": "string", + "description": "Log configuration extension information, generally used to store additional log delivery configurations.\n" + }, + "instanceId": { + "type": "string", + "description": "Instance ID.\n" + }, + "logType": { + "type": "string", + "description": "Log type, Values: CDS-AUDIT, CDS-RISK, CDB-AUDIT, TDSQL-C-AUDIT, MongoDB-AUDIT, MongoDB-SlowLog, MongoDB-ErrorLog, TDMYSQL-SLOW, DCDB-AUDIT, DCDB-SLOW, DCDB-ERROR, MariaDB-AUDIT, MariaDB-SLOW, MariaDB-ERROR, PostgreSQL-SLOW, PostgreSQL-ERROR, PostgreSQL-AUDIT, BH-FILELOG, BH-COMMANDLOG, APIS-ACCESS.\n" + }, + "logsetId": { + "type": "string", + "description": "Log set ID.\n" + }, + "logsetName": { + "type": "string", + "description": "Log set name, it will be automatically created.\n" + }, + "topicId": { + "type": "string", + "description": "Log theme ID.\n" + }, + "topicName": { + "type": "string", + "description": "The name of the log topic, it will be automatically created.\n" + } + }, + "type": "object" + } + }, "tencentcloud:Cls/config:Config": { "description": "Provides a resource to create a cls config\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as tencentcloud from \"@tencentcloud_iac/pulumi\";\n\nconst config = new tencentcloud.cls.Config(\"config\", {\n excludePaths: [\n {\n type: \"Path\",\n value: \"/data\",\n },\n {\n type: \"File\",\n value: \"/file\",\n },\n ],\n extractRule: {\n backtracking: -1,\n filterKeyRegexes: [\n {\n key: \"key1\",\n regex: \"value1\",\n },\n {\n key: \"key2\",\n regex: \"value2\",\n },\n ],\n unMatchLogKey: \"config\",\n unMatchUpLoadSwitch: true,\n },\n logType: \"json_log\",\n output: \"4d07fba0-b93e-4e0b-9a7f-d58542560bbb\",\n path: \"/var/log/kubernetes\",\n});\n```\n```python\nimport pulumi\nimport tencentcloud_iac_pulumi as tencentcloud\n\nconfig = tencentcloud.cls.Config(\"config\",\n exclude_paths=[\n tencentcloud.cls.ConfigExcludePathArgs(\n type=\"Path\",\n value=\"/data\",\n ),\n tencentcloud.cls.ConfigExcludePathArgs(\n type=\"File\",\n value=\"/file\",\n ),\n ],\n extract_rule=tencentcloud.cls.ConfigExtractRuleArgs(\n backtracking=-1,\n filter_key_regexes=[\n tencentcloud.cls.ConfigExtractRuleFilterKeyRegexArgs(\n key=\"key1\",\n regex=\"value1\",\n ),\n tencentcloud.cls.ConfigExtractRuleFilterKeyRegexArgs(\n key=\"key2\",\n regex=\"value2\",\n ),\n ],\n un_match_log_key=\"config\",\n un_match_up_load_switch=True,\n ),\n log_type=\"json_log\",\n output=\"4d07fba0-b93e-4e0b-9a7f-d58542560bbb\",\n path=\"/var/log/kubernetes\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Tencentcloud = TencentCloudIAC.PulumiPackage.Tencentcloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var config = new Tencentcloud.Cls.Config(\"config\", new()\n {\n ExcludePaths = new[]\n {\n new Tencentcloud.Cls.Inputs.ConfigExcludePathArgs\n {\n Type = \"Path\",\n Value = \"/data\",\n },\n new Tencentcloud.Cls.Inputs.ConfigExcludePathArgs\n {\n Type = \"File\",\n Value = \"/file\",\n },\n },\n ExtractRule = new Tencentcloud.Cls.Inputs.ConfigExtractRuleArgs\n {\n Backtracking = -1,\n FilterKeyRegexes = new[]\n {\n new Tencentcloud.Cls.Inputs.ConfigExtractRuleFilterKeyRegexArgs\n {\n Key = \"key1\",\n Regex = \"value1\",\n },\n new Tencentcloud.Cls.Inputs.ConfigExtractRuleFilterKeyRegexArgs\n {\n Key = \"key2\",\n Regex = \"value2\",\n },\n },\n UnMatchLogKey = \"config\",\n UnMatchUpLoadSwitch = true,\n },\n LogType = \"json_log\",\n Output = \"4d07fba0-b93e-4e0b-9a7f-d58542560bbb\",\n Path = \"/var/log/kubernetes\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/tencentcloudstack/pulumi-tencentcloud/sdk/go/tencentcloud/Cls\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := Cls.NewConfig(ctx, \"config\", \u0026Cls.ConfigArgs{\n\t\t\tExcludePaths: cls.ConfigExcludePathArray{\n\t\t\t\t\u0026cls.ConfigExcludePathArgs{\n\t\t\t\t\tType: pulumi.String(\"Path\"),\n\t\t\t\t\tValue: pulumi.String(\"/data\"),\n\t\t\t\t},\n\t\t\t\t\u0026cls.ConfigExcludePathArgs{\n\t\t\t\t\tType: pulumi.String(\"File\"),\n\t\t\t\t\tValue: pulumi.String(\"/file\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tExtractRule: \u0026cls.ConfigExtractRuleArgs{\n\t\t\t\tBacktracking: -1,\n\t\t\t\tFilterKeyRegexes: cls.ConfigExtractRuleFilterKeyRegexArray{\n\t\t\t\t\t\u0026cls.ConfigExtractRuleFilterKeyRegexArgs{\n\t\t\t\t\t\tKey: pulumi.String(\"key1\"),\n\t\t\t\t\t\tRegex: pulumi.String(\"value1\"),\n\t\t\t\t\t},\n\t\t\t\t\t\u0026cls.ConfigExtractRuleFilterKeyRegexArgs{\n\t\t\t\t\t\tKey: pulumi.String(\"key2\"),\n\t\t\t\t\t\tRegex: pulumi.String(\"value2\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tUnMatchLogKey: pulumi.String(\"config\"),\n\t\t\t\tUnMatchUpLoadSwitch: pulumi.Bool(true),\n\t\t\t},\n\t\t\tLogType: pulumi.String(\"json_log\"),\n\t\t\tOutput: pulumi.String(\"4d07fba0-b93e-4e0b-9a7f-d58542560bbb\"),\n\t\t\tPath: pulumi.String(\"/var/log/kubernetes\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.tencentcloud.Cls.Config;\nimport com.pulumi.tencentcloud.Cls.ConfigArgs;\nimport com.pulumi.tencentcloud.Cls.inputs.ConfigExcludePathArgs;\nimport com.pulumi.tencentcloud.Cls.inputs.ConfigExtractRuleArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 config = new Config(\"config\", ConfigArgs.builder() \n .excludePaths( \n ConfigExcludePathArgs.builder()\n .type(\"Path\")\n .value(\"/data\")\n .build(),\n ConfigExcludePathArgs.builder()\n .type(\"File\")\n .value(\"/file\")\n .build())\n .extractRule(ConfigExtractRuleArgs.builder()\n .backtracking(\"TODO: GenUnaryOpExpression\")\n .filterKeyRegexes( \n ConfigExtractRuleFilterKeyRegexArgs.builder()\n .key(\"key1\")\n .regex(\"value1\")\n .build(),\n ConfigExtractRuleFilterKeyRegexArgs.builder()\n .key(\"key2\")\n .regex(\"value2\")\n .build())\n .unMatchLogKey(\"config\")\n .unMatchUpLoadSwitch(true)\n .build())\n .logType(\"json_log\")\n .output(\"4d07fba0-b93e-4e0b-9a7f-d58542560bbb\")\n .path(\"/var/log/kubernetes\")\n .build());\n\n }\n}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\ncls config can be imported using the id, e.g.\n\n```sh\n$ pulumi import tencentcloud:Cls/config:Config config config_id\n```\n\n", "properties": { @@ -145840,6 +146208,58 @@ "type": "object" } }, + "tencentcloud:Cls/noticeContent:NoticeContent": { + "description": "Provides a resource to create a cls notice content\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as tencentcloud from \"@tencentcloud_iac/pulumi\";\n\nconst example = new tencentcloud.cls.NoticeContent(\"example\", {\n noticeContents: {\n recoveryContent: {\n content: \"This is content.\",\n headers: [\"Content-Type:application/json\"],\n title: \"title\",\n },\n triggerContent: {\n content: \"This is content.\",\n headers: [\"Content-Type:application/json\"],\n title: \"title\",\n },\n type: \"Email\",\n },\n type: 0,\n});\n```\n```python\nimport pulumi\nimport tencentcloud_iac_pulumi as tencentcloud\n\nexample = tencentcloud.cls.NoticeContent(\"example\",\n notice_contents=tencentcloud.cls.NoticeContentNoticeContentsArgs(\n recovery_content=tencentcloud.cls.NoticeContentNoticeContentsRecoveryContentArgs(\n content=\"This is content.\",\n headers=[\"Content-Type:application/json\"],\n title=\"title\",\n ),\n trigger_content=tencentcloud.cls.NoticeContentNoticeContentsTriggerContentArgs(\n content=\"This is content.\",\n headers=[\"Content-Type:application/json\"],\n title=\"title\",\n ),\n type=\"Email\",\n ),\n type=0)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Tencentcloud = TencentCloudIAC.PulumiPackage.Tencentcloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new Tencentcloud.Cls.NoticeContent(\"example\", new()\n {\n NoticeContents = new Tencentcloud.Cls.Inputs.NoticeContentNoticeContentsArgs\n {\n RecoveryContent = new Tencentcloud.Cls.Inputs.NoticeContentNoticeContentsRecoveryContentArgs\n {\n Content = \"This is content.\",\n Headers = new[]\n {\n \"Content-Type:application/json\",\n },\n Title = \"title\",\n },\n TriggerContent = new Tencentcloud.Cls.Inputs.NoticeContentNoticeContentsTriggerContentArgs\n {\n Content = \"This is content.\",\n Headers = new[]\n {\n \"Content-Type:application/json\",\n },\n Title = \"title\",\n },\n Type = \"Email\",\n },\n Type = 0,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/tencentcloudstack/pulumi-tencentcloud/sdk/go/tencentcloud/Cls\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := Cls.NewNoticeContent(ctx, \"example\", \u0026Cls.NoticeContentArgs{\n\t\t\tNoticeContents: \u0026cls.NoticeContentNoticeContentsArgs{\n\t\t\t\tRecoveryContent: \u0026cls.NoticeContentNoticeContentsRecoveryContentArgs{\n\t\t\t\t\tContent: pulumi.String(\"This is content.\"),\n\t\t\t\t\tHeaders: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"Content-Type:application/json\"),\n\t\t\t\t\t},\n\t\t\t\t\tTitle: pulumi.String(\"title\"),\n\t\t\t\t},\n\t\t\t\tTriggerContent: \u0026cls.NoticeContentNoticeContentsTriggerContentArgs{\n\t\t\t\t\tContent: pulumi.String(\"This is content.\"),\n\t\t\t\t\tHeaders: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"Content-Type:application/json\"),\n\t\t\t\t\t},\n\t\t\t\t\tTitle: pulumi.String(\"title\"),\n\t\t\t\t},\n\t\t\t\tType: pulumi.String(\"Email\"),\n\t\t\t},\n\t\t\tType: 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.tencentcloud.Cls.NoticeContent;\nimport com.pulumi.tencentcloud.Cls.NoticeContentArgs;\nimport com.pulumi.tencentcloud.Cls.inputs.NoticeContentNoticeContentsArgs;\nimport com.pulumi.tencentcloud.Cls.inputs.NoticeContentNoticeContentsRecoveryContentArgs;\nimport com.pulumi.tencentcloud.Cls.inputs.NoticeContentNoticeContentsTriggerContentArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 NoticeContent(\"example\", NoticeContentArgs.builder() \n .noticeContents(NoticeContentNoticeContentsArgs.builder()\n .recoveryContent(NoticeContentNoticeContentsRecoveryContentArgs.builder()\n .content(\"This is content.\")\n .headers(\"Content-Type:application/json\")\n .title(\"title\")\n .build())\n .triggerContent(NoticeContentNoticeContentsTriggerContentArgs.builder()\n .content(\"This is content.\")\n .headers(\"Content-Type:application/json\")\n .title(\"title\")\n .build())\n .type(\"Email\")\n .build())\n .type(0)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: tencentcloud:Cls:NoticeContent\n properties:\n noticeContents:\n recoveryContent:\n content: This is content.\n headers:\n - Content-Type:application/json\n title: title\n triggerContent:\n content: This is content.\n headers:\n - Content-Type:application/json\n title: title\n type: Email\n type: 0\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\ncls notice content can be imported using the id, e.g.\n\n```sh\n$ pulumi import tencentcloud:Cls/noticeContent:NoticeContent example noticetemplate-b417f32a-bdf9-46c5-933e-28c23cd7a6b7\n```\n\n", + "properties": { + "name": { + "type": "string", + "description": "Notice content name.\n" + }, + "noticeContents": { + "$ref": "#/types/tencentcloud:Cls/NoticeContentNoticeContents:NoticeContentNoticeContents", + "description": "Template detailed configuration.\n" + }, + "type": { + "type": "integer", + "description": "Template content language. 0: Chinese 1: English.\n" + } + }, + "required": [ + "name" + ], + "inputProperties": { + "name": { + "type": "string", + "description": "Notice content name.\n" + }, + "noticeContents": { + "$ref": "#/types/tencentcloud:Cls/NoticeContentNoticeContents:NoticeContentNoticeContents", + "description": "Template detailed configuration.\n" + }, + "type": { + "type": "integer", + "description": "Template content language. 0: Chinese 1: English.\n" + } + }, + "stateInputs": { + "description": "Input properties used for looking up and filtering NoticeContent resources.\n", + "properties": { + "name": { + "type": "string", + "description": "Notice content name.\n" + }, + "noticeContents": { + "$ref": "#/types/tencentcloud:Cls/NoticeContentNoticeContents:NoticeContentNoticeContents", + "description": "Template detailed configuration.\n" + }, + "type": { + "type": "integer", + "description": "Template content language. 0: Chinese 1: English.\n" + } + }, + "type": "object" + } + }, "tencentcloud:Cls/scheduledSql:ScheduledSql": { "description": "Provides a resource to create a cls scheduled_sql\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as tencentcloud from \"@tencentcloud_iac/pulumi\";\n\nconst logset = new tencentcloud.cls.Logset(\"logset\", {\n logsetName: \"tf-example-logset\",\n tags: {\n createdBy: \"terraform\",\n },\n});\nconst topic = new tencentcloud.cls.Topic(\"topic\", {\n topicName: \"tf-example-topic\",\n logsetId: logset.id,\n autoSplit: false,\n maxSplitPartitions: 20,\n partitionCount: 1,\n period: 10,\n storageType: \"hot\",\n tags: {\n test: \"test\",\n },\n});\nconst scheduledSql = new tencentcloud.cls.ScheduledSql(\"scheduledSql\", {\n srcTopicId: topic.id,\n enableFlag: 1,\n dstResource: {\n topicId: topic.id,\n region: \"ap-guangzhou\",\n bizType: 0,\n metricName: \"test\",\n },\n scheduledSqlContent: \"xxx\",\n processStartTime: 1690515360000,\n processType: 1,\n processPeriod: 10,\n processTimeWindow: \"@m-15m,@m\",\n processDelay: 5,\n srcTopicRegion: \"ap-guangzhou\",\n processEndTime: 1690515360000,\n syntaxRule: 0,\n});\n```\n```python\nimport pulumi\nimport tencentcloud_iac_pulumi as tencentcloud\n\nlogset = tencentcloud.cls.Logset(\"logset\",\n logset_name=\"tf-example-logset\",\n tags={\n \"createdBy\": \"terraform\",\n })\ntopic = tencentcloud.cls.Topic(\"topic\",\n topic_name=\"tf-example-topic\",\n logset_id=logset.id,\n auto_split=False,\n max_split_partitions=20,\n partition_count=1,\n period=10,\n storage_type=\"hot\",\n tags={\n \"test\": \"test\",\n })\nscheduled_sql = tencentcloud.cls.ScheduledSql(\"scheduledSql\",\n src_topic_id=topic.id,\n enable_flag=1,\n dst_resource=tencentcloud.cls.ScheduledSqlDstResourceArgs(\n topic_id=topic.id,\n region=\"ap-guangzhou\",\n biz_type=0,\n metric_name=\"test\",\n ),\n scheduled_sql_content=\"xxx\",\n process_start_time=1690515360000,\n process_type=1,\n process_period=10,\n process_time_window=\"@m-15m,@m\",\n process_delay=5,\n src_topic_region=\"ap-guangzhou\",\n process_end_time=1690515360000,\n syntax_rule=0)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Tencentcloud = TencentCloudIAC.PulumiPackage.Tencentcloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var logset = new Tencentcloud.Cls.Logset(\"logset\", new()\n {\n LogsetName = \"tf-example-logset\",\n Tags = \n {\n { \"createdBy\", \"terraform\" },\n },\n });\n\n var topic = new Tencentcloud.Cls.Topic(\"topic\", new()\n {\n TopicName = \"tf-example-topic\",\n LogsetId = logset.Id,\n AutoSplit = false,\n MaxSplitPartitions = 20,\n PartitionCount = 1,\n Period = 10,\n StorageType = \"hot\",\n Tags = \n {\n { \"test\", \"test\" },\n },\n });\n\n var scheduledSql = new Tencentcloud.Cls.ScheduledSql(\"scheduledSql\", new()\n {\n SrcTopicId = topic.Id,\n EnableFlag = 1,\n DstResource = new Tencentcloud.Cls.Inputs.ScheduledSqlDstResourceArgs\n {\n TopicId = topic.Id,\n Region = \"ap-guangzhou\",\n BizType = 0,\n MetricName = \"test\",\n },\n ScheduledSqlContent = \"xxx\",\n ProcessStartTime = 1690515360000,\n ProcessType = 1,\n ProcessPeriod = 10,\n ProcessTimeWindow = \"@m-15m,@m\",\n ProcessDelay = 5,\n SrcTopicRegion = \"ap-guangzhou\",\n ProcessEndTime = 1690515360000,\n SyntaxRule = 0,\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/tencentcloudstack/pulumi-tencentcloud/sdk/go/tencentcloud/Cls\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tlogset, err := Cls.NewLogset(ctx, \"logset\", \u0026Cls.LogsetArgs{\n\t\t\tLogsetName: pulumi.String(\"tf-example-logset\"),\n\t\t\tTags: pulumi.Map{\n\t\t\t\t\"createdBy\": pulumi.Any(\"terraform\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttopic, err := Cls.NewTopic(ctx, \"topic\", \u0026Cls.TopicArgs{\n\t\t\tTopicName: pulumi.String(\"tf-example-topic\"),\n\t\t\tLogsetId: logset.ID(),\n\t\t\tAutoSplit: pulumi.Bool(false),\n\t\t\tMaxSplitPartitions: pulumi.Int(20),\n\t\t\tPartitionCount: pulumi.Int(1),\n\t\t\tPeriod: pulumi.Int(10),\n\t\t\tStorageType: pulumi.String(\"hot\"),\n\t\t\tTags: pulumi.Map{\n\t\t\t\t\"test\": pulumi.Any(\"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 = Cls.NewScheduledSql(ctx, \"scheduledSql\", \u0026Cls.ScheduledSqlArgs{\n\t\t\tSrcTopicId: topic.ID(),\n\t\t\tEnableFlag: pulumi.Int(1),\n\t\t\tDstResource: \u0026cls.ScheduledSqlDstResourceArgs{\n\t\t\t\tTopicId: topic.ID(),\n\t\t\t\tRegion: pulumi.String(\"ap-guangzhou\"),\n\t\t\t\tBizType: pulumi.Int(0),\n\t\t\t\tMetricName: pulumi.String(\"test\"),\n\t\t\t},\n\t\t\tScheduledSqlContent: pulumi.String(\"xxx\"),\n\t\t\tProcessStartTime: pulumi.Int(1690515360000),\n\t\t\tProcessType: pulumi.Int(1),\n\t\t\tProcessPeriod: pulumi.Int(10),\n\t\t\tProcessTimeWindow: pulumi.String(\"@m-15m,@m\"),\n\t\t\tProcessDelay: pulumi.Int(5),\n\t\t\tSrcTopicRegion: pulumi.String(\"ap-guangzhou\"),\n\t\t\tProcessEndTime: pulumi.Int(1690515360000),\n\t\t\tSyntaxRule: 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.tencentcloud.Cls.Logset;\nimport com.pulumi.tencentcloud.Cls.LogsetArgs;\nimport com.pulumi.tencentcloud.Cls.Topic;\nimport com.pulumi.tencentcloud.Cls.TopicArgs;\nimport com.pulumi.tencentcloud.Cls.ScheduledSql;\nimport com.pulumi.tencentcloud.Cls.ScheduledSqlArgs;\nimport com.pulumi.tencentcloud.Cls.inputs.ScheduledSqlDstResourceArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 logset = new Logset(\"logset\", LogsetArgs.builder() \n .logsetName(\"tf-example-logset\")\n .tags(Map.of(\"createdBy\", \"terraform\"))\n .build());\n\n var topic = new Topic(\"topic\", TopicArgs.builder() \n .topicName(\"tf-example-topic\")\n .logsetId(logset.id())\n .autoSplit(false)\n .maxSplitPartitions(20)\n .partitionCount(1)\n .period(10)\n .storageType(\"hot\")\n .tags(Map.of(\"test\", \"test\"))\n .build());\n\n var scheduledSql = new ScheduledSql(\"scheduledSql\", ScheduledSqlArgs.builder() \n .srcTopicId(topic.id())\n .enableFlag(1)\n .dstResource(ScheduledSqlDstResourceArgs.builder()\n .topicId(topic.id())\n .region(\"ap-guangzhou\")\n .bizType(0)\n .metricName(\"test\")\n .build())\n .scheduledSqlContent(\"xxx\")\n .processStartTime(1690515360000)\n .processType(1)\n .processPeriod(10)\n .processTimeWindow(\"@m-15m,@m\")\n .processDelay(5)\n .srcTopicRegion(\"ap-guangzhou\")\n .processEndTime(1690515360000)\n .syntaxRule(0)\n .build());\n\n }\n}\n```\n```yaml\nresources:\n logset:\n type: tencentcloud:Cls:Logset\n properties:\n logsetName: tf-example-logset\n tags:\n createdBy: terraform\n topic:\n type: tencentcloud:Cls:Topic\n properties:\n topicName: tf-example-topic\n logsetId: ${logset.id}\n autoSplit: false\n maxSplitPartitions: 20\n partitionCount: 1\n period: 10\n storageType: hot\n tags:\n test: test\n scheduledSql:\n type: tencentcloud:Cls:ScheduledSql\n properties:\n srcTopicId: ${topic.id}\n enableFlag: 1\n dstResource:\n topicId: ${topic.id}\n region: ap-guangzhou\n bizType: 0\n metricName: test\n scheduledSqlContent: xxx\n processStartTime: 1.69051536e+12\n processType: 1\n processPeriod: 10\n processTimeWindow: '@m-15m,@m'\n processDelay: 5\n srcTopicRegion: ap-guangzhou\n processEndTime: 1.69051536e+12\n syntaxRule: 0\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\ncls scheduled_sql can be imported using the id, e.g.\n\n```sh\n$ pulumi import tencentcloud:Cls/scheduledSql:ScheduledSql scheduled_sql scheduled_sql_id\n```\n\n", "properties": { @@ -178507,7 +178927,7 @@ } }, "tencentcloud:Kubernetes/nodePool:NodePool": { - "description": "Provide a resource to create an auto scaling group for kubernetes cluster.\n\n\u003e **NOTE:** We recommend the usage of one cluster with essential worker config + node pool to manage cluster and nodes. Its a more flexible way than manage worker config with tencentcloud_kubernetes_cluster, tencentcloud.Kubernetes.ScaleWorker or exist node management of `tencentcloud_kubernetes_attachment`. Cause some unchangeable parameters of `worker_config` may cause the whole cluster resource `force new`.\n\n\u003e **NOTE:** In order to ensure the integrity of customer data, if you destroy nodepool instance, it will keep the cvm instance associate with nodepool by default. If you want to destroy together, please set `delete_keep_instance` to `false`.\n\n\u003e **NOTE:** In order to ensure the integrity of customer data, if the cvm instance was destroyed due to shrinking, it will keep the cbs associate with cvm by default. If you want to destroy together, please set `delete_with_instance` to `true`.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as tencentcloud from \"@tencentcloud_iac/pulumi\";\nimport * as tencentcloud from \"@tencentcloud_iac/pulumi\";\n\nconst config = new pulumi.Config();\nconst availabilityZone = config.get(\"availabilityZone\") || \"ap-guangzhou-3\";\nconst clusterCidr = config.get(\"clusterCidr\") || \"172.31.0.0/16\";\nconst vpc = tencentcloud.Vpc.getSubnets({\n isDefault: true,\n availabilityZone: availabilityZone,\n});\nconst defaultInstanceType = config.get(\"defaultInstanceType\") || \"S1.SMALL1\";\n//this is the cluster with empty worker config\nconst exampleCluster = new tencentcloud.kubernetes.Cluster(\"exampleCluster\", {\n vpcId: vpc.then(vpc =\u003e vpc.instanceLists?.[0]?.vpcId),\n clusterCidr: clusterCidr,\n clusterMaxPodNum: 32,\n clusterName: \"tf-tke-unit-test\",\n clusterDesc: \"test cluster desc\",\n clusterMaxServiceNum: 32,\n clusterVersion: \"1.18.4\",\n clusterDeployType: \"MANAGED_CLUSTER\",\n});\n//this is one example of managing node using node pool\nconst exampleNodePool = new tencentcloud.kubernetes.NodePool(\"exampleNodePool\", {\n clusterId: exampleCluster.id,\n maxSize: 6,\n minSize: 1,\n vpcId: vpc.then(vpc =\u003e vpc.instanceLists?.[0]?.vpcId),\n subnetIds: [vpc.then(vpc =\u003e vpc.instanceLists?.[0]?.subnetId)],\n retryPolicy: \"INCREMENTAL_INTERVALS\",\n desiredCapacity: 4,\n enableAutoScale: true,\n multiZoneSubnetPolicy: \"EQUALITY\",\n nodeOs: \"img-9qrfy1xt\",\n autoScalingConfig: {\n instanceType: defaultInstanceType,\n systemDiskType: \"CLOUD_PREMIUM\",\n systemDiskSize: 50,\n orderlySecurityGroupIds: [\"sg-24vswocp\"],\n dataDisks: [{\n diskType: \"CLOUD_PREMIUM\",\n diskSize: 50,\n }],\n internetChargeType: \"TRAFFIC_POSTPAID_BY_HOUR\",\n internetMaxBandwidthOut: 10,\n publicIpAssigned: true,\n password: \"test123#\",\n enhancedSecurityService: false,\n enhancedMonitorService: false,\n hostName: \"12.123.0.0\",\n hostNameStyle: \"ORIGINAL\",\n },\n labels: {\n test1: \"test1\",\n test2: \"test2\",\n },\n taints: [\n {\n key: \"test_taint\",\n value: \"taint_value\",\n effect: \"PreferNoSchedule\",\n },\n {\n key: \"test_taint2\",\n value: \"taint_value2\",\n effect: \"PreferNoSchedule\",\n },\n ],\n nodeConfig: {\n dockerGraphPath: \"/var/lib/docker\",\n extraArgs: [\"root-dir=/var/lib/kubelet\"],\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_tencentcloud as tencentcloud\nimport tencentcloud_iac_pulumi as tencentcloud\n\nconfig = pulumi.Config()\navailability_zone = config.get(\"availabilityZone\")\nif availability_zone is None:\n availability_zone = \"ap-guangzhou-3\"\ncluster_cidr = config.get(\"clusterCidr\")\nif cluster_cidr is None:\n cluster_cidr = \"172.31.0.0/16\"\nvpc = tencentcloud.Vpc.get_subnets(is_default=True,\n availability_zone=availability_zone)\ndefault_instance_type = config.get(\"defaultInstanceType\")\nif default_instance_type is None:\n default_instance_type = \"S1.SMALL1\"\n#this is the cluster with empty worker config\nexample_cluster = tencentcloud.kubernetes.Cluster(\"exampleCluster\",\n vpc_id=vpc.instance_lists[0].vpc_id,\n cluster_cidr=cluster_cidr,\n cluster_max_pod_num=32,\n cluster_name=\"tf-tke-unit-test\",\n cluster_desc=\"test cluster desc\",\n cluster_max_service_num=32,\n cluster_version=\"1.18.4\",\n cluster_deploy_type=\"MANAGED_CLUSTER\")\n#this is one example of managing node using node pool\nexample_node_pool = tencentcloud.kubernetes.NodePool(\"exampleNodePool\",\n cluster_id=example_cluster.id,\n max_size=6,\n min_size=1,\n vpc_id=vpc.instance_lists[0].vpc_id,\n subnet_ids=[vpc.instance_lists[0].subnet_id],\n retry_policy=\"INCREMENTAL_INTERVALS\",\n desired_capacity=4,\n enable_auto_scale=True,\n multi_zone_subnet_policy=\"EQUALITY\",\n node_os=\"img-9qrfy1xt\",\n auto_scaling_config=tencentcloud.kubernetes.NodePoolAutoScalingConfigArgs(\n instance_type=default_instance_type,\n system_disk_type=\"CLOUD_PREMIUM\",\n system_disk_size=50,\n orderly_security_group_ids=[\"sg-24vswocp\"],\n data_disks=[tencentcloud.kubernetes.NodePoolAutoScalingConfigDataDiskArgs(\n disk_type=\"CLOUD_PREMIUM\",\n disk_size=50,\n )],\n internet_charge_type=\"TRAFFIC_POSTPAID_BY_HOUR\",\n internet_max_bandwidth_out=10,\n public_ip_assigned=True,\n password=\"test123#\",\n enhanced_security_service=False,\n enhanced_monitor_service=False,\n host_name=\"12.123.0.0\",\n host_name_style=\"ORIGINAL\",\n ),\n labels={\n \"test1\": \"test1\",\n \"test2\": \"test2\",\n },\n taints=[\n tencentcloud.kubernetes.NodePoolTaintArgs(\n key=\"test_taint\",\n value=\"taint_value\",\n effect=\"PreferNoSchedule\",\n ),\n tencentcloud.kubernetes.NodePoolTaintArgs(\n key=\"test_taint2\",\n value=\"taint_value2\",\n effect=\"PreferNoSchedule\",\n ),\n ],\n node_config=tencentcloud.kubernetes.NodePoolNodeConfigArgs(\n docker_graph_path=\"/var/lib/docker\",\n extra_args=[\"root-dir=/var/lib/kubelet\"],\n ))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Tencentcloud = Pulumi.Tencentcloud;\nusing Tencentcloud = TencentCloudIAC.PulumiPackage.Tencentcloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var config = new Config();\n var availabilityZone = config.Get(\"availabilityZone\") ?? \"ap-guangzhou-3\";\n var clusterCidr = config.Get(\"clusterCidr\") ?? \"172.31.0.0/16\";\n var vpc = Tencentcloud.Vpc.GetSubnets.Invoke(new()\n {\n IsDefault = true,\n AvailabilityZone = availabilityZone,\n });\n\n var defaultInstanceType = config.Get(\"defaultInstanceType\") ?? \"S1.SMALL1\";\n //this is the cluster with empty worker config\n var exampleCluster = new Tencentcloud.Kubernetes.Cluster(\"exampleCluster\", new()\n {\n VpcId = vpc.Apply(getSubnetsResult =\u003e getSubnetsResult.InstanceLists[0]?.VpcId),\n ClusterCidr = clusterCidr,\n ClusterMaxPodNum = 32,\n ClusterName = \"tf-tke-unit-test\",\n ClusterDesc = \"test cluster desc\",\n ClusterMaxServiceNum = 32,\n ClusterVersion = \"1.18.4\",\n ClusterDeployType = \"MANAGED_CLUSTER\",\n });\n\n //this is one example of managing node using node pool\n var exampleNodePool = new Tencentcloud.Kubernetes.NodePool(\"exampleNodePool\", new()\n {\n ClusterId = exampleCluster.Id,\n MaxSize = 6,\n MinSize = 1,\n VpcId = vpc.Apply(getSubnetsResult =\u003e getSubnetsResult.InstanceLists[0]?.VpcId),\n SubnetIds = new[]\n {\n vpc.Apply(getSubnetsResult =\u003e getSubnetsResult.InstanceLists[0]?.SubnetId),\n },\n RetryPolicy = \"INCREMENTAL_INTERVALS\",\n DesiredCapacity = 4,\n EnableAutoScale = true,\n MultiZoneSubnetPolicy = \"EQUALITY\",\n NodeOs = \"img-9qrfy1xt\",\n AutoScalingConfig = new Tencentcloud.Kubernetes.Inputs.NodePoolAutoScalingConfigArgs\n {\n InstanceType = defaultInstanceType,\n SystemDiskType = \"CLOUD_PREMIUM\",\n SystemDiskSize = 50,\n OrderlySecurityGroupIds = new[]\n {\n \"sg-24vswocp\",\n },\n DataDisks = new[]\n {\n new Tencentcloud.Kubernetes.Inputs.NodePoolAutoScalingConfigDataDiskArgs\n {\n DiskType = \"CLOUD_PREMIUM\",\n DiskSize = 50,\n },\n },\n InternetChargeType = \"TRAFFIC_POSTPAID_BY_HOUR\",\n InternetMaxBandwidthOut = 10,\n PublicIpAssigned = true,\n Password = \"test123#\",\n EnhancedSecurityService = false,\n EnhancedMonitorService = false,\n HostName = \"12.123.0.0\",\n HostNameStyle = \"ORIGINAL\",\n },\n Labels = \n {\n { \"test1\", \"test1\" },\n { \"test2\", \"test2\" },\n },\n Taints = new[]\n {\n new Tencentcloud.Kubernetes.Inputs.NodePoolTaintArgs\n {\n Key = \"test_taint\",\n Value = \"taint_value\",\n Effect = \"PreferNoSchedule\",\n },\n new Tencentcloud.Kubernetes.Inputs.NodePoolTaintArgs\n {\n Key = \"test_taint2\",\n Value = \"taint_value2\",\n Effect = \"PreferNoSchedule\",\n },\n },\n NodeConfig = new Tencentcloud.Kubernetes.Inputs.NodePoolNodeConfigArgs\n {\n DockerGraphPath = \"/var/lib/docker\",\n ExtraArgs = new[]\n {\n \"root-dir=/var/lib/kubelet\",\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n\t\"github.com/tencentcloudstack/pulumi-tencentcloud/sdk/go/tencentcloud/Kubernetes\"\n\t\"github.com/tencentcloudstack/pulumi-tencentcloud/sdk/go/tencentcloud/Vpc\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tavailabilityZone := \"ap-guangzhou-3\"\n\t\tif param := cfg.Get(\"availabilityZone\"); param != \"\" {\n\t\t\tavailabilityZone = param\n\t\t}\n\t\tclusterCidr := \"172.31.0.0/16\"\n\t\tif param := cfg.Get(\"clusterCidr\"); param != \"\" {\n\t\t\tclusterCidr = param\n\t\t}\n\t\tvpc, err := Vpc.GetSubnets(ctx, \u0026vpc.GetSubnetsArgs{\n\t\t\tIsDefault: pulumi.BoolRef(true),\n\t\t\tAvailabilityZone: pulumi.StringRef(availabilityZone),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultInstanceType := \"S1.SMALL1\"\n\t\tif param := cfg.Get(\"defaultInstanceType\"); param != \"\" {\n\t\t\tdefaultInstanceType = param\n\t\t}\n\t\t// this is the cluster with empty worker config\n\t\texampleCluster, err := Kubernetes.NewCluster(ctx, \"exampleCluster\", \u0026Kubernetes.ClusterArgs{\n\t\t\tVpcId: pulumi.String(vpc.InstanceLists[0].VpcId),\n\t\t\tClusterCidr: pulumi.String(clusterCidr),\n\t\t\tClusterMaxPodNum: pulumi.Int(32),\n\t\t\tClusterName: pulumi.String(\"tf-tke-unit-test\"),\n\t\t\tClusterDesc: pulumi.String(\"test cluster desc\"),\n\t\t\tClusterMaxServiceNum: pulumi.Int(32),\n\t\t\tClusterVersion: pulumi.String(\"1.18.4\"),\n\t\t\tClusterDeployType: pulumi.String(\"MANAGED_CLUSTER\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// this is one example of managing node using node pool\n\t\t_, err = Kubernetes.NewNodePool(ctx, \"exampleNodePool\", \u0026Kubernetes.NodePoolArgs{\n\t\t\tClusterId: exampleCluster.ID(),\n\t\t\tMaxSize: pulumi.Int(6),\n\t\t\tMinSize: pulumi.Int(1),\n\t\t\tVpcId: pulumi.String(vpc.InstanceLists[0].VpcId),\n\t\t\tSubnetIds: pulumi.StringArray{\n\t\t\t\tpulumi.String(vpc.InstanceLists[0].SubnetId),\n\t\t\t},\n\t\t\tRetryPolicy: pulumi.String(\"INCREMENTAL_INTERVALS\"),\n\t\t\tDesiredCapacity: pulumi.Int(4),\n\t\t\tEnableAutoScale: pulumi.Bool(true),\n\t\t\tMultiZoneSubnetPolicy: pulumi.String(\"EQUALITY\"),\n\t\t\tNodeOs: pulumi.String(\"img-9qrfy1xt\"),\n\t\t\tAutoScalingConfig: \u0026kubernetes.NodePoolAutoScalingConfigArgs{\n\t\t\t\tInstanceType: pulumi.String(defaultInstanceType),\n\t\t\t\tSystemDiskType: pulumi.String(\"CLOUD_PREMIUM\"),\n\t\t\t\tSystemDiskSize: pulumi.Int(50),\n\t\t\t\tOrderlySecurityGroupIds: pulumi.StringArray{\n\t\t\t\t\tpulumi.String(\"sg-24vswocp\"),\n\t\t\t\t},\n\t\t\t\tDataDisks: kubernetes.NodePoolAutoScalingConfigDataDiskArray{\n\t\t\t\t\t\u0026kubernetes.NodePoolAutoScalingConfigDataDiskArgs{\n\t\t\t\t\t\tDiskType: pulumi.String(\"CLOUD_PREMIUM\"),\n\t\t\t\t\t\tDiskSize: pulumi.Int(50),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tInternetChargeType: pulumi.String(\"TRAFFIC_POSTPAID_BY_HOUR\"),\n\t\t\t\tInternetMaxBandwidthOut: pulumi.Int(10),\n\t\t\t\tPublicIpAssigned: pulumi.Bool(true),\n\t\t\t\tPassword: pulumi.String(\"test123#\"),\n\t\t\t\tEnhancedSecurityService: pulumi.Bool(false),\n\t\t\t\tEnhancedMonitorService: pulumi.Bool(false),\n\t\t\t\tHostName: pulumi.String(\"12.123.0.0\"),\n\t\t\t\tHostNameStyle: pulumi.String(\"ORIGINAL\"),\n\t\t\t},\n\t\t\tLabels: pulumi.Map{\n\t\t\t\t\"test1\": pulumi.Any(\"test1\"),\n\t\t\t\t\"test2\": pulumi.Any(\"test2\"),\n\t\t\t},\n\t\t\tTaints: kubernetes.NodePoolTaintArray{\n\t\t\t\t\u0026kubernetes.NodePoolTaintArgs{\n\t\t\t\t\tKey: pulumi.String(\"test_taint\"),\n\t\t\t\t\tValue: pulumi.String(\"taint_value\"),\n\t\t\t\t\tEffect: pulumi.String(\"PreferNoSchedule\"),\n\t\t\t\t},\n\t\t\t\t\u0026kubernetes.NodePoolTaintArgs{\n\t\t\t\t\tKey: pulumi.String(\"test_taint2\"),\n\t\t\t\t\tValue: pulumi.String(\"taint_value2\"),\n\t\t\t\t\tEffect: pulumi.String(\"PreferNoSchedule\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tNodeConfig: \u0026kubernetes.NodePoolNodeConfigArgs{\n\t\t\t\tDockerGraphPath: pulumi.String(\"/var/lib/docker\"),\n\t\t\t\tExtraArgs: pulumi.StringArray{\n\t\t\t\t\tpulumi.String(\"root-dir=/var/lib/kubelet\"),\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.tencentcloud.Vpc.VpcFunctions;\nimport com.pulumi.tencentcloud.Vpc.inputs.GetSubnetsArgs;\nimport com.pulumi.tencentcloud.Kubernetes.Cluster;\nimport com.pulumi.tencentcloud.Kubernetes.ClusterArgs;\nimport com.pulumi.tencentcloud.Kubernetes.NodePool;\nimport com.pulumi.tencentcloud.Kubernetes.NodePoolArgs;\nimport com.pulumi.tencentcloud.Kubernetes.inputs.NodePoolAutoScalingConfigArgs;\nimport com.pulumi.tencentcloud.Kubernetes.inputs.NodePoolTaintArgs;\nimport com.pulumi.tencentcloud.Kubernetes.inputs.NodePoolNodeConfigArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var config = ctx.config();\n final var availabilityZone = config.get(\"availabilityZone\").orElse(\"ap-guangzhou-3\");\n final var clusterCidr = config.get(\"clusterCidr\").orElse(\"172.31.0.0/16\");\n final var vpc = VpcFunctions.getSubnets(GetSubnetsArgs.builder()\n .isDefault(true)\n .availabilityZone(availabilityZone)\n .build());\n\n final var defaultInstanceType = config.get(\"defaultInstanceType\").orElse(\"S1.SMALL1\");\n //this is the cluster with empty worker config\n var exampleCluster = new Cluster(\"exampleCluster\", ClusterArgs.builder() \n .vpcId(vpc.applyValue(getSubnetsResult -\u003e getSubnetsResult.instanceLists()[0].vpcId()))\n .clusterCidr(clusterCidr)\n .clusterMaxPodNum(32)\n .clusterName(\"tf-tke-unit-test\")\n .clusterDesc(\"test cluster desc\")\n .clusterMaxServiceNum(32)\n .clusterVersion(\"1.18.4\")\n .clusterDeployType(\"MANAGED_CLUSTER\")\n .build());\n\n //this is one example of managing node using node pool\n var exampleNodePool = new NodePool(\"exampleNodePool\", NodePoolArgs.builder() \n .clusterId(exampleCluster.id())\n .maxSize(6)\n .minSize(1)\n .vpcId(vpc.applyValue(getSubnetsResult -\u003e getSubnetsResult.instanceLists()[0].vpcId()))\n .subnetIds(vpc.applyValue(getSubnetsResult -\u003e getSubnetsResult.instanceLists()[0].subnetId()))\n .retryPolicy(\"INCREMENTAL_INTERVALS\")\n .desiredCapacity(4)\n .enableAutoScale(true)\n .multiZoneSubnetPolicy(\"EQUALITY\")\n .nodeOs(\"img-9qrfy1xt\")\n .autoScalingConfig(NodePoolAutoScalingConfigArgs.builder()\n .instanceType(defaultInstanceType)\n .systemDiskType(\"CLOUD_PREMIUM\")\n .systemDiskSize(\"50\")\n .orderlySecurityGroupIds(\"sg-24vswocp\")\n .dataDisks(NodePoolAutoScalingConfigDataDiskArgs.builder()\n .diskType(\"CLOUD_PREMIUM\")\n .diskSize(50)\n .build())\n .internetChargeType(\"TRAFFIC_POSTPAID_BY_HOUR\")\n .internetMaxBandwidthOut(10)\n .publicIpAssigned(true)\n .password(\"test123#\")\n .enhancedSecurityService(false)\n .enhancedMonitorService(false)\n .hostName(\"12.123.0.0\")\n .hostNameStyle(\"ORIGINAL\")\n .build())\n .labels(Map.ofEntries(\n Map.entry(\"test1\", \"test1\"),\n Map.entry(\"test2\", \"test2\")\n ))\n .taints( \n NodePoolTaintArgs.builder()\n .key(\"test_taint\")\n .value(\"taint_value\")\n .effect(\"PreferNoSchedule\")\n .build(),\n NodePoolTaintArgs.builder()\n .key(\"test_taint2\")\n .value(\"taint_value2\")\n .effect(\"PreferNoSchedule\")\n .build())\n .nodeConfig(NodePoolNodeConfigArgs.builder()\n .dockerGraphPath(\"/var/lib/docker\")\n .extraArgs(\"root-dir=/var/lib/kubelet\")\n .build())\n .build());\n\n }\n}\n```\n```yaml\nconfiguration:\n availabilityZone:\n type: string\n default: ap-guangzhou-3\n clusterCidr:\n type: string\n default: 172.31.0.0/16\n defaultInstanceType:\n type: string\n default: S1.SMALL1\nresources:\n # this is the cluster with empty worker config\n exampleCluster:\n type: tencentcloud:Kubernetes:Cluster\n properties:\n vpcId: ${vpc.instanceLists[0].vpcId}\n clusterCidr: ${clusterCidr}\n clusterMaxPodNum: 32\n clusterName: tf-tke-unit-test\n clusterDesc: test cluster desc\n clusterMaxServiceNum: 32\n clusterVersion: 1.18.4\n clusterDeployType: MANAGED_CLUSTER\n # this is one example of managing node using node pool\n exampleNodePool:\n type: tencentcloud:Kubernetes:NodePool\n properties:\n clusterId: ${exampleCluster.id}\n maxSize: 6\n minSize: 1\n vpcId: ${vpc.instanceLists[0].vpcId}\n subnetIds:\n - ${vpc.instanceLists[0].subnetId}\n retryPolicy: INCREMENTAL_INTERVALS\n desiredCapacity: 4\n enableAutoScale: true\n multiZoneSubnetPolicy: EQUALITY\n nodeOs: img-9qrfy1xt\n autoScalingConfig:\n instanceType: ${defaultInstanceType}\n systemDiskType: CLOUD_PREMIUM\n systemDiskSize: '50'\n orderlySecurityGroupIds:\n - sg-24vswocp\n dataDisks:\n - diskType: CLOUD_PREMIUM\n diskSize: 50\n internetChargeType: TRAFFIC_POSTPAID_BY_HOUR\n internetMaxBandwidthOut: 10\n publicIpAssigned: true\n password: test123#\n enhancedSecurityService: false\n enhancedMonitorService: false\n hostName: 12.123.0.0\n hostNameStyle: ORIGINAL\n labels:\n test1: test1\n test2: test2\n taints:\n - key: test_taint\n value: taint_value\n effect: PreferNoSchedule\n - key: test_taint2\n value: taint_value2\n effect: PreferNoSchedule\n nodeConfig:\n dockerGraphPath: /var/lib/docker\n extraArgs:\n - root-dir=/var/lib/kubelet\nvariables:\n vpc:\n fn::invoke:\n Function: tencentcloud:Vpc:getSubnets\n Arguments:\n isDefault: true\n availabilityZone: ${availabilityZone}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Using Spot CVM Instance\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as tencentcloud from \"@tencentcloud_iac/pulumi\";\n\nconst example = new tencentcloud.kubernetes.NodePool(\"example\", {\n clusterId: tencentcloud_kubernetes_cluster.managed_cluster.id,\n maxSize: 6,\n minSize: 1,\n vpcId: data.tencentcloud_vpc_subnets.vpc.instance_list[0].vpc_id,\n subnetIds: [data.tencentcloud_vpc_subnets.vpc.instance_list[0].subnet_id],\n retryPolicy: \"INCREMENTAL_INTERVALS\",\n desiredCapacity: 4,\n enableAutoScale: true,\n multiZoneSubnetPolicy: \"EQUALITY\",\n autoScalingConfig: {\n instanceType: _var.default_instance_type,\n systemDiskType: \"CLOUD_PREMIUM\",\n systemDiskSize: 50,\n orderlySecurityGroupIds: [\n \"sg-24vswocp\",\n \"sg-3qntci2v\",\n \"sg-7y1t2wax\",\n ],\n instanceChargeType: \"SPOTPAID\",\n spotInstanceType: \"one-time\",\n spotMaxPrice: \"1000\",\n dataDisks: [{\n diskType: \"CLOUD_PREMIUM\",\n diskSize: 50,\n }],\n internetChargeType: \"TRAFFIC_POSTPAID_BY_HOUR\",\n internetMaxBandwidthOut: 10,\n publicIpAssigned: true,\n password: \"test123#\",\n enhancedSecurityService: false,\n enhancedMonitorService: false,\n },\n labels: {\n test1: \"test1\",\n test2: \"test2\",\n },\n});\n```\n```python\nimport pulumi\nimport tencentcloud_iac_pulumi as tencentcloud\n\nexample = tencentcloud.kubernetes.NodePool(\"example\",\n cluster_id=tencentcloud_kubernetes_cluster[\"managed_cluster\"][\"id\"],\n max_size=6,\n min_size=1,\n vpc_id=data[\"tencentcloud_vpc_subnets\"][\"vpc\"][\"instance_list\"][0][\"vpc_id\"],\n subnet_ids=[data[\"tencentcloud_vpc_subnets\"][\"vpc\"][\"instance_list\"][0][\"subnet_id\"]],\n retry_policy=\"INCREMENTAL_INTERVALS\",\n desired_capacity=4,\n enable_auto_scale=True,\n multi_zone_subnet_policy=\"EQUALITY\",\n auto_scaling_config=tencentcloud.kubernetes.NodePoolAutoScalingConfigArgs(\n instance_type=var[\"default_instance_type\"],\n system_disk_type=\"CLOUD_PREMIUM\",\n system_disk_size=50,\n orderly_security_group_ids=[\n \"sg-24vswocp\",\n \"sg-3qntci2v\",\n \"sg-7y1t2wax\",\n ],\n instance_charge_type=\"SPOTPAID\",\n spot_instance_type=\"one-time\",\n spot_max_price=\"1000\",\n data_disks=[tencentcloud.kubernetes.NodePoolAutoScalingConfigDataDiskArgs(\n disk_type=\"CLOUD_PREMIUM\",\n disk_size=50,\n )],\n internet_charge_type=\"TRAFFIC_POSTPAID_BY_HOUR\",\n internet_max_bandwidth_out=10,\n public_ip_assigned=True,\n password=\"test123#\",\n enhanced_security_service=False,\n enhanced_monitor_service=False,\n ),\n labels={\n \"test1\": \"test1\",\n \"test2\": \"test2\",\n })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Tencentcloud = TencentCloudIAC.PulumiPackage.Tencentcloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new Tencentcloud.Kubernetes.NodePool(\"example\", new()\n {\n ClusterId = tencentcloud_kubernetes_cluster.Managed_cluster.Id,\n MaxSize = 6,\n MinSize = 1,\n VpcId = data.Tencentcloud_vpc_subnets.Vpc.Instance_list[0].Vpc_id,\n SubnetIds = new[]\n {\n data.Tencentcloud_vpc_subnets.Vpc.Instance_list[0].Subnet_id,\n },\n RetryPolicy = \"INCREMENTAL_INTERVALS\",\n DesiredCapacity = 4,\n EnableAutoScale = true,\n MultiZoneSubnetPolicy = \"EQUALITY\",\n AutoScalingConfig = new Tencentcloud.Kubernetes.Inputs.NodePoolAutoScalingConfigArgs\n {\n InstanceType = @var.Default_instance_type,\n SystemDiskType = \"CLOUD_PREMIUM\",\n SystemDiskSize = 50,\n OrderlySecurityGroupIds = new[]\n {\n \"sg-24vswocp\",\n \"sg-3qntci2v\",\n \"sg-7y1t2wax\",\n },\n InstanceChargeType = \"SPOTPAID\",\n SpotInstanceType = \"one-time\",\n SpotMaxPrice = \"1000\",\n DataDisks = new[]\n {\n new Tencentcloud.Kubernetes.Inputs.NodePoolAutoScalingConfigDataDiskArgs\n {\n DiskType = \"CLOUD_PREMIUM\",\n DiskSize = 50,\n },\n },\n InternetChargeType = \"TRAFFIC_POSTPAID_BY_HOUR\",\n InternetMaxBandwidthOut = 10,\n PublicIpAssigned = true,\n Password = \"test123#\",\n EnhancedSecurityService = false,\n EnhancedMonitorService = false,\n },\n Labels = \n {\n { \"test1\", \"test1\" },\n { \"test2\", \"test2\" },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/tencentcloudstack/pulumi-tencentcloud/sdk/go/tencentcloud/Kubernetes\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := Kubernetes.NewNodePool(ctx, \"example\", \u0026Kubernetes.NodePoolArgs{\n\t\t\tClusterId: pulumi.Any(tencentcloud_kubernetes_cluster.Managed_cluster.Id),\n\t\t\tMaxSize: pulumi.Int(6),\n\t\t\tMinSize: pulumi.Int(1),\n\t\t\tVpcId: pulumi.Any(data.Tencentcloud_vpc_subnets.Vpc.Instance_list[0].Vpc_id),\n\t\t\tSubnetIds: pulumi.StringArray{\n\t\t\t\tdata.Tencentcloud_vpc_subnets.Vpc.Instance_list[0].Subnet_id,\n\t\t\t},\n\t\t\tRetryPolicy: pulumi.String(\"INCREMENTAL_INTERVALS\"),\n\t\t\tDesiredCapacity: pulumi.Int(4),\n\t\t\tEnableAutoScale: pulumi.Bool(true),\n\t\t\tMultiZoneSubnetPolicy: pulumi.String(\"EQUALITY\"),\n\t\t\tAutoScalingConfig: \u0026kubernetes.NodePoolAutoScalingConfigArgs{\n\t\t\t\tInstanceType: pulumi.Any(_var.Default_instance_type),\n\t\t\t\tSystemDiskType: pulumi.String(\"CLOUD_PREMIUM\"),\n\t\t\t\tSystemDiskSize: pulumi.Int(50),\n\t\t\t\tOrderlySecurityGroupIds: pulumi.StringArray{\n\t\t\t\t\tpulumi.String(\"sg-24vswocp\"),\n\t\t\t\t\tpulumi.String(\"sg-3qntci2v\"),\n\t\t\t\t\tpulumi.String(\"sg-7y1t2wax\"),\n\t\t\t\t},\n\t\t\t\tInstanceChargeType: pulumi.String(\"SPOTPAID\"),\n\t\t\t\tSpotInstanceType: pulumi.String(\"one-time\"),\n\t\t\t\tSpotMaxPrice: pulumi.String(\"1000\"),\n\t\t\t\tDataDisks: kubernetes.NodePoolAutoScalingConfigDataDiskArray{\n\t\t\t\t\t\u0026kubernetes.NodePoolAutoScalingConfigDataDiskArgs{\n\t\t\t\t\t\tDiskType: pulumi.String(\"CLOUD_PREMIUM\"),\n\t\t\t\t\t\tDiskSize: pulumi.Int(50),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tInternetChargeType: pulumi.String(\"TRAFFIC_POSTPAID_BY_HOUR\"),\n\t\t\t\tInternetMaxBandwidthOut: pulumi.Int(10),\n\t\t\t\tPublicIpAssigned: pulumi.Bool(true),\n\t\t\t\tPassword: pulumi.String(\"test123#\"),\n\t\t\t\tEnhancedSecurityService: pulumi.Bool(false),\n\t\t\t\tEnhancedMonitorService: pulumi.Bool(false),\n\t\t\t},\n\t\t\tLabels: pulumi.Map{\n\t\t\t\t\"test1\": pulumi.Any(\"test1\"),\n\t\t\t\t\"test2\": pulumi.Any(\"test2\"),\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.tencentcloud.Kubernetes.NodePool;\nimport com.pulumi.tencentcloud.Kubernetes.NodePoolArgs;\nimport com.pulumi.tencentcloud.Kubernetes.inputs.NodePoolAutoScalingConfigArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 NodePool(\"example\", NodePoolArgs.builder() \n .clusterId(tencentcloud_kubernetes_cluster.managed_cluster().id())\n .maxSize(6)\n .minSize(1)\n .vpcId(data.tencentcloud_vpc_subnets().vpc().instance_list()[0].vpc_id())\n .subnetIds(data.tencentcloud_vpc_subnets().vpc().instance_list()[0].subnet_id())\n .retryPolicy(\"INCREMENTAL_INTERVALS\")\n .desiredCapacity(4)\n .enableAutoScale(true)\n .multiZoneSubnetPolicy(\"EQUALITY\")\n .autoScalingConfig(NodePoolAutoScalingConfigArgs.builder()\n .instanceType(var_.default_instance_type())\n .systemDiskType(\"CLOUD_PREMIUM\")\n .systemDiskSize(\"50\")\n .orderlySecurityGroupIds( \n \"sg-24vswocp\",\n \"sg-3qntci2v\",\n \"sg-7y1t2wax\")\n .instanceChargeType(\"SPOTPAID\")\n .spotInstanceType(\"one-time\")\n .spotMaxPrice(\"1000\")\n .dataDisks(NodePoolAutoScalingConfigDataDiskArgs.builder()\n .diskType(\"CLOUD_PREMIUM\")\n .diskSize(50)\n .build())\n .internetChargeType(\"TRAFFIC_POSTPAID_BY_HOUR\")\n .internetMaxBandwidthOut(10)\n .publicIpAssigned(true)\n .password(\"test123#\")\n .enhancedSecurityService(false)\n .enhancedMonitorService(false)\n .build())\n .labels(Map.ofEntries(\n Map.entry(\"test1\", \"test1\"),\n Map.entry(\"test2\", \"test2\")\n ))\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: tencentcloud:Kubernetes:NodePool\n properties:\n clusterId: ${tencentcloud_kubernetes_cluster.managed_cluster.id}\n maxSize: 6\n minSize: 1\n vpcId: ${data.tencentcloud_vpc_subnets.vpc.instance_list[0].vpc_id}\n subnetIds:\n - ${data.tencentcloud_vpc_subnets.vpc.instance_list[0].subnet_id}\n retryPolicy: INCREMENTAL_INTERVALS\n desiredCapacity: 4\n enableAutoScale: true\n multiZoneSubnetPolicy: EQUALITY\n autoScalingConfig:\n instanceType: ${var.default_instance_type}\n systemDiskType: CLOUD_PREMIUM\n systemDiskSize: '50'\n orderlySecurityGroupIds:\n - sg-24vswocp\n - sg-3qntci2v\n - sg-7y1t2wax\n instanceChargeType: SPOTPAID\n spotInstanceType: one-time\n spotMaxPrice: '1000'\n dataDisks:\n - diskType: CLOUD_PREMIUM\n diskSize: 50\n internetChargeType: TRAFFIC_POSTPAID_BY_HOUR\n internetMaxBandwidthOut: 10\n publicIpAssigned: true\n password: test123#\n enhancedSecurityService: false\n enhancedMonitorService: false\n labels:\n test1: test1\n test2: test2\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\ntke node pool can be imported, e.g.\n\n```sh\n$ pulumi import tencentcloud:Kubernetes/nodePool:NodePool example cls-d2xdg3io#np-380ay1o8\n```\n", + "description": "Provide a resource to create an auto scaling group for kubernetes cluster.\n\n\u003e **NOTE:** We recommend the usage of one cluster with essential worker config + node pool to manage cluster and nodes. Its a more flexible way than manage worker config with tencentcloud_kubernetes_cluster, tencentcloud.Kubernetes.ScaleWorker or exist node management of `tencentcloud_kubernetes_attachment`. Cause some unchangeable parameters of `worker_config` may cause the whole cluster resource `force new`.\n\n\u003e **NOTE:** In order to ensure the integrity of customer data, if you destroy nodepool instance, it will keep the cvm instance associate with nodepool by default. If you want to destroy together, please set `delete_keep_instance` to `false`.\n\n\u003e **NOTE:** In order to ensure the integrity of customer data, if the cvm instance was destroyed due to shrinking, it will keep the cbs associate with cvm by default. If you want to destroy together, please set `delete_with_instance` to `true`.\n\n\u003e **NOTE:** There are two parameters `wait_node_ready` and `scale_tolerance` to ensure better management of node pool scaling operations. If this parameter is set, when creating resources, if the set criteria are not met, the resources will be marked as `tainted`.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as tencentcloud from \"@tencentcloud_iac/pulumi\";\nimport * as tencentcloud from \"@tencentcloud_iac/pulumi\";\n\nconst config = new pulumi.Config();\nconst availabilityZone = config.get(\"availabilityZone\") || \"ap-guangzhou-3\";\nconst clusterCidr = config.get(\"clusterCidr\") || \"172.31.0.0/16\";\nconst vpc = tencentcloud.Vpc.getSubnets({\n isDefault: true,\n availabilityZone: availabilityZone,\n});\nconst defaultInstanceType = config.get(\"defaultInstanceType\") || \"S1.SMALL1\";\n//this is the cluster with empty worker config\nconst exampleCluster = new tencentcloud.kubernetes.Cluster(\"exampleCluster\", {\n vpcId: vpc.then(vpc =\u003e vpc.instanceLists?.[0]?.vpcId),\n clusterCidr: clusterCidr,\n clusterMaxPodNum: 32,\n clusterName: \"tf-tke-unit-test\",\n clusterDesc: \"test cluster desc\",\n clusterMaxServiceNum: 32,\n clusterVersion: \"1.18.4\",\n clusterDeployType: \"MANAGED_CLUSTER\",\n});\n//this is one example of managing node using node pool\nconst exampleNodePool = new tencentcloud.kubernetes.NodePool(\"exampleNodePool\", {\n clusterId: exampleCluster.id,\n maxSize: 6,\n minSize: 1,\n vpcId: vpc.then(vpc =\u003e vpc.instanceLists?.[0]?.vpcId),\n subnetIds: [vpc.then(vpc =\u003e vpc.instanceLists?.[0]?.subnetId)],\n retryPolicy: \"INCREMENTAL_INTERVALS\",\n desiredCapacity: 4,\n enableAutoScale: true,\n multiZoneSubnetPolicy: \"EQUALITY\",\n nodeOs: \"img-9qrfy1xt\",\n autoScalingConfig: {\n instanceType: defaultInstanceType,\n systemDiskType: \"CLOUD_PREMIUM\",\n systemDiskSize: 50,\n orderlySecurityGroupIds: [\"sg-24vswocp\"],\n dataDisks: [{\n diskType: \"CLOUD_PREMIUM\",\n diskSize: 50,\n }],\n internetChargeType: \"TRAFFIC_POSTPAID_BY_HOUR\",\n internetMaxBandwidthOut: 10,\n publicIpAssigned: true,\n password: \"test123#\",\n enhancedSecurityService: false,\n enhancedMonitorService: false,\n hostName: \"12.123.0.0\",\n hostNameStyle: \"ORIGINAL\",\n },\n labels: {\n test1: \"test1\",\n test2: \"test2\",\n },\n taints: [\n {\n key: \"test_taint\",\n value: \"taint_value\",\n effect: \"PreferNoSchedule\",\n },\n {\n key: \"test_taint2\",\n value: \"taint_value2\",\n effect: \"PreferNoSchedule\",\n },\n ],\n nodeConfig: {\n dockerGraphPath: \"/var/lib/docker\",\n extraArgs: [\"root-dir=/var/lib/kubelet\"],\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_tencentcloud as tencentcloud\nimport tencentcloud_iac_pulumi as tencentcloud\n\nconfig = pulumi.Config()\navailability_zone = config.get(\"availabilityZone\")\nif availability_zone is None:\n availability_zone = \"ap-guangzhou-3\"\ncluster_cidr = config.get(\"clusterCidr\")\nif cluster_cidr is None:\n cluster_cidr = \"172.31.0.0/16\"\nvpc = tencentcloud.Vpc.get_subnets(is_default=True,\n availability_zone=availability_zone)\ndefault_instance_type = config.get(\"defaultInstanceType\")\nif default_instance_type is None:\n default_instance_type = \"S1.SMALL1\"\n#this is the cluster with empty worker config\nexample_cluster = tencentcloud.kubernetes.Cluster(\"exampleCluster\",\n vpc_id=vpc.instance_lists[0].vpc_id,\n cluster_cidr=cluster_cidr,\n cluster_max_pod_num=32,\n cluster_name=\"tf-tke-unit-test\",\n cluster_desc=\"test cluster desc\",\n cluster_max_service_num=32,\n cluster_version=\"1.18.4\",\n cluster_deploy_type=\"MANAGED_CLUSTER\")\n#this is one example of managing node using node pool\nexample_node_pool = tencentcloud.kubernetes.NodePool(\"exampleNodePool\",\n cluster_id=example_cluster.id,\n max_size=6,\n min_size=1,\n vpc_id=vpc.instance_lists[0].vpc_id,\n subnet_ids=[vpc.instance_lists[0].subnet_id],\n retry_policy=\"INCREMENTAL_INTERVALS\",\n desired_capacity=4,\n enable_auto_scale=True,\n multi_zone_subnet_policy=\"EQUALITY\",\n node_os=\"img-9qrfy1xt\",\n auto_scaling_config=tencentcloud.kubernetes.NodePoolAutoScalingConfigArgs(\n instance_type=default_instance_type,\n system_disk_type=\"CLOUD_PREMIUM\",\n system_disk_size=50,\n orderly_security_group_ids=[\"sg-24vswocp\"],\n data_disks=[tencentcloud.kubernetes.NodePoolAutoScalingConfigDataDiskArgs(\n disk_type=\"CLOUD_PREMIUM\",\n disk_size=50,\n )],\n internet_charge_type=\"TRAFFIC_POSTPAID_BY_HOUR\",\n internet_max_bandwidth_out=10,\n public_ip_assigned=True,\n password=\"test123#\",\n enhanced_security_service=False,\n enhanced_monitor_service=False,\n host_name=\"12.123.0.0\",\n host_name_style=\"ORIGINAL\",\n ),\n labels={\n \"test1\": \"test1\",\n \"test2\": \"test2\",\n },\n taints=[\n tencentcloud.kubernetes.NodePoolTaintArgs(\n key=\"test_taint\",\n value=\"taint_value\",\n effect=\"PreferNoSchedule\",\n ),\n tencentcloud.kubernetes.NodePoolTaintArgs(\n key=\"test_taint2\",\n value=\"taint_value2\",\n effect=\"PreferNoSchedule\",\n ),\n ],\n node_config=tencentcloud.kubernetes.NodePoolNodeConfigArgs(\n docker_graph_path=\"/var/lib/docker\",\n extra_args=[\"root-dir=/var/lib/kubelet\"],\n ))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Tencentcloud = Pulumi.Tencentcloud;\nusing Tencentcloud = TencentCloudIAC.PulumiPackage.Tencentcloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var config = new Config();\n var availabilityZone = config.Get(\"availabilityZone\") ?? \"ap-guangzhou-3\";\n var clusterCidr = config.Get(\"clusterCidr\") ?? \"172.31.0.0/16\";\n var vpc = Tencentcloud.Vpc.GetSubnets.Invoke(new()\n {\n IsDefault = true,\n AvailabilityZone = availabilityZone,\n });\n\n var defaultInstanceType = config.Get(\"defaultInstanceType\") ?? \"S1.SMALL1\";\n //this is the cluster with empty worker config\n var exampleCluster = new Tencentcloud.Kubernetes.Cluster(\"exampleCluster\", new()\n {\n VpcId = vpc.Apply(getSubnetsResult =\u003e getSubnetsResult.InstanceLists[0]?.VpcId),\n ClusterCidr = clusterCidr,\n ClusterMaxPodNum = 32,\n ClusterName = \"tf-tke-unit-test\",\n ClusterDesc = \"test cluster desc\",\n ClusterMaxServiceNum = 32,\n ClusterVersion = \"1.18.4\",\n ClusterDeployType = \"MANAGED_CLUSTER\",\n });\n\n //this is one example of managing node using node pool\n var exampleNodePool = new Tencentcloud.Kubernetes.NodePool(\"exampleNodePool\", new()\n {\n ClusterId = exampleCluster.Id,\n MaxSize = 6,\n MinSize = 1,\n VpcId = vpc.Apply(getSubnetsResult =\u003e getSubnetsResult.InstanceLists[0]?.VpcId),\n SubnetIds = new[]\n {\n vpc.Apply(getSubnetsResult =\u003e getSubnetsResult.InstanceLists[0]?.SubnetId),\n },\n RetryPolicy = \"INCREMENTAL_INTERVALS\",\n DesiredCapacity = 4,\n EnableAutoScale = true,\n MultiZoneSubnetPolicy = \"EQUALITY\",\n NodeOs = \"img-9qrfy1xt\",\n AutoScalingConfig = new Tencentcloud.Kubernetes.Inputs.NodePoolAutoScalingConfigArgs\n {\n InstanceType = defaultInstanceType,\n SystemDiskType = \"CLOUD_PREMIUM\",\n SystemDiskSize = 50,\n OrderlySecurityGroupIds = new[]\n {\n \"sg-24vswocp\",\n },\n DataDisks = new[]\n {\n new Tencentcloud.Kubernetes.Inputs.NodePoolAutoScalingConfigDataDiskArgs\n {\n DiskType = \"CLOUD_PREMIUM\",\n DiskSize = 50,\n },\n },\n InternetChargeType = \"TRAFFIC_POSTPAID_BY_HOUR\",\n InternetMaxBandwidthOut = 10,\n PublicIpAssigned = true,\n Password = \"test123#\",\n EnhancedSecurityService = false,\n EnhancedMonitorService = false,\n HostName = \"12.123.0.0\",\n HostNameStyle = \"ORIGINAL\",\n },\n Labels = \n {\n { \"test1\", \"test1\" },\n { \"test2\", \"test2\" },\n },\n Taints = new[]\n {\n new Tencentcloud.Kubernetes.Inputs.NodePoolTaintArgs\n {\n Key = \"test_taint\",\n Value = \"taint_value\",\n Effect = \"PreferNoSchedule\",\n },\n new Tencentcloud.Kubernetes.Inputs.NodePoolTaintArgs\n {\n Key = \"test_taint2\",\n Value = \"taint_value2\",\n Effect = \"PreferNoSchedule\",\n },\n },\n NodeConfig = new Tencentcloud.Kubernetes.Inputs.NodePoolNodeConfigArgs\n {\n DockerGraphPath = \"/var/lib/docker\",\n ExtraArgs = new[]\n {\n \"root-dir=/var/lib/kubelet\",\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n\t\"github.com/tencentcloudstack/pulumi-tencentcloud/sdk/go/tencentcloud/Kubernetes\"\n\t\"github.com/tencentcloudstack/pulumi-tencentcloud/sdk/go/tencentcloud/Vpc\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\tavailabilityZone := \"ap-guangzhou-3\"\n\t\tif param := cfg.Get(\"availabilityZone\"); param != \"\" {\n\t\t\tavailabilityZone = param\n\t\t}\n\t\tclusterCidr := \"172.31.0.0/16\"\n\t\tif param := cfg.Get(\"clusterCidr\"); param != \"\" {\n\t\t\tclusterCidr = param\n\t\t}\n\t\tvpc, err := Vpc.GetSubnets(ctx, \u0026vpc.GetSubnetsArgs{\n\t\t\tIsDefault: pulumi.BoolRef(true),\n\t\t\tAvailabilityZone: pulumi.StringRef(availabilityZone),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tdefaultInstanceType := \"S1.SMALL1\"\n\t\tif param := cfg.Get(\"defaultInstanceType\"); param != \"\" {\n\t\t\tdefaultInstanceType = param\n\t\t}\n\t\t// this is the cluster with empty worker config\n\t\texampleCluster, err := Kubernetes.NewCluster(ctx, \"exampleCluster\", \u0026Kubernetes.ClusterArgs{\n\t\t\tVpcId: pulumi.String(vpc.InstanceLists[0].VpcId),\n\t\t\tClusterCidr: pulumi.String(clusterCidr),\n\t\t\tClusterMaxPodNum: pulumi.Int(32),\n\t\t\tClusterName: pulumi.String(\"tf-tke-unit-test\"),\n\t\t\tClusterDesc: pulumi.String(\"test cluster desc\"),\n\t\t\tClusterMaxServiceNum: pulumi.Int(32),\n\t\t\tClusterVersion: pulumi.String(\"1.18.4\"),\n\t\t\tClusterDeployType: pulumi.String(\"MANAGED_CLUSTER\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// this is one example of managing node using node pool\n\t\t_, err = Kubernetes.NewNodePool(ctx, \"exampleNodePool\", \u0026Kubernetes.NodePoolArgs{\n\t\t\tClusterId: exampleCluster.ID(),\n\t\t\tMaxSize: pulumi.Int(6),\n\t\t\tMinSize: pulumi.Int(1),\n\t\t\tVpcId: pulumi.String(vpc.InstanceLists[0].VpcId),\n\t\t\tSubnetIds: pulumi.StringArray{\n\t\t\t\tpulumi.String(vpc.InstanceLists[0].SubnetId),\n\t\t\t},\n\t\t\tRetryPolicy: pulumi.String(\"INCREMENTAL_INTERVALS\"),\n\t\t\tDesiredCapacity: pulumi.Int(4),\n\t\t\tEnableAutoScale: pulumi.Bool(true),\n\t\t\tMultiZoneSubnetPolicy: pulumi.String(\"EQUALITY\"),\n\t\t\tNodeOs: pulumi.String(\"img-9qrfy1xt\"),\n\t\t\tAutoScalingConfig: \u0026kubernetes.NodePoolAutoScalingConfigArgs{\n\t\t\t\tInstanceType: pulumi.String(defaultInstanceType),\n\t\t\t\tSystemDiskType: pulumi.String(\"CLOUD_PREMIUM\"),\n\t\t\t\tSystemDiskSize: pulumi.Int(50),\n\t\t\t\tOrderlySecurityGroupIds: pulumi.StringArray{\n\t\t\t\t\tpulumi.String(\"sg-24vswocp\"),\n\t\t\t\t},\n\t\t\t\tDataDisks: kubernetes.NodePoolAutoScalingConfigDataDiskArray{\n\t\t\t\t\t\u0026kubernetes.NodePoolAutoScalingConfigDataDiskArgs{\n\t\t\t\t\t\tDiskType: pulumi.String(\"CLOUD_PREMIUM\"),\n\t\t\t\t\t\tDiskSize: pulumi.Int(50),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tInternetChargeType: pulumi.String(\"TRAFFIC_POSTPAID_BY_HOUR\"),\n\t\t\t\tInternetMaxBandwidthOut: pulumi.Int(10),\n\t\t\t\tPublicIpAssigned: pulumi.Bool(true),\n\t\t\t\tPassword: pulumi.String(\"test123#\"),\n\t\t\t\tEnhancedSecurityService: pulumi.Bool(false),\n\t\t\t\tEnhancedMonitorService: pulumi.Bool(false),\n\t\t\t\tHostName: pulumi.String(\"12.123.0.0\"),\n\t\t\t\tHostNameStyle: pulumi.String(\"ORIGINAL\"),\n\t\t\t},\n\t\t\tLabels: pulumi.Map{\n\t\t\t\t\"test1\": pulumi.Any(\"test1\"),\n\t\t\t\t\"test2\": pulumi.Any(\"test2\"),\n\t\t\t},\n\t\t\tTaints: kubernetes.NodePoolTaintArray{\n\t\t\t\t\u0026kubernetes.NodePoolTaintArgs{\n\t\t\t\t\tKey: pulumi.String(\"test_taint\"),\n\t\t\t\t\tValue: pulumi.String(\"taint_value\"),\n\t\t\t\t\tEffect: pulumi.String(\"PreferNoSchedule\"),\n\t\t\t\t},\n\t\t\t\t\u0026kubernetes.NodePoolTaintArgs{\n\t\t\t\t\tKey: pulumi.String(\"test_taint2\"),\n\t\t\t\t\tValue: pulumi.String(\"taint_value2\"),\n\t\t\t\t\tEffect: pulumi.String(\"PreferNoSchedule\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tNodeConfig: \u0026kubernetes.NodePoolNodeConfigArgs{\n\t\t\t\tDockerGraphPath: pulumi.String(\"/var/lib/docker\"),\n\t\t\t\tExtraArgs: pulumi.StringArray{\n\t\t\t\t\tpulumi.String(\"root-dir=/var/lib/kubelet\"),\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.tencentcloud.Vpc.VpcFunctions;\nimport com.pulumi.tencentcloud.Vpc.inputs.GetSubnetsArgs;\nimport com.pulumi.tencentcloud.Kubernetes.Cluster;\nimport com.pulumi.tencentcloud.Kubernetes.ClusterArgs;\nimport com.pulumi.tencentcloud.Kubernetes.NodePool;\nimport com.pulumi.tencentcloud.Kubernetes.NodePoolArgs;\nimport com.pulumi.tencentcloud.Kubernetes.inputs.NodePoolAutoScalingConfigArgs;\nimport com.pulumi.tencentcloud.Kubernetes.inputs.NodePoolTaintArgs;\nimport com.pulumi.tencentcloud.Kubernetes.inputs.NodePoolNodeConfigArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var config = ctx.config();\n final var availabilityZone = config.get(\"availabilityZone\").orElse(\"ap-guangzhou-3\");\n final var clusterCidr = config.get(\"clusterCidr\").orElse(\"172.31.0.0/16\");\n final var vpc = VpcFunctions.getSubnets(GetSubnetsArgs.builder()\n .isDefault(true)\n .availabilityZone(availabilityZone)\n .build());\n\n final var defaultInstanceType = config.get(\"defaultInstanceType\").orElse(\"S1.SMALL1\");\n //this is the cluster with empty worker config\n var exampleCluster = new Cluster(\"exampleCluster\", ClusterArgs.builder() \n .vpcId(vpc.applyValue(getSubnetsResult -\u003e getSubnetsResult.instanceLists()[0].vpcId()))\n .clusterCidr(clusterCidr)\n .clusterMaxPodNum(32)\n .clusterName(\"tf-tke-unit-test\")\n .clusterDesc(\"test cluster desc\")\n .clusterMaxServiceNum(32)\n .clusterVersion(\"1.18.4\")\n .clusterDeployType(\"MANAGED_CLUSTER\")\n .build());\n\n //this is one example of managing node using node pool\n var exampleNodePool = new NodePool(\"exampleNodePool\", NodePoolArgs.builder() \n .clusterId(exampleCluster.id())\n .maxSize(6)\n .minSize(1)\n .vpcId(vpc.applyValue(getSubnetsResult -\u003e getSubnetsResult.instanceLists()[0].vpcId()))\n .subnetIds(vpc.applyValue(getSubnetsResult -\u003e getSubnetsResult.instanceLists()[0].subnetId()))\n .retryPolicy(\"INCREMENTAL_INTERVALS\")\n .desiredCapacity(4)\n .enableAutoScale(true)\n .multiZoneSubnetPolicy(\"EQUALITY\")\n .nodeOs(\"img-9qrfy1xt\")\n .autoScalingConfig(NodePoolAutoScalingConfigArgs.builder()\n .instanceType(defaultInstanceType)\n .systemDiskType(\"CLOUD_PREMIUM\")\n .systemDiskSize(\"50\")\n .orderlySecurityGroupIds(\"sg-24vswocp\")\n .dataDisks(NodePoolAutoScalingConfigDataDiskArgs.builder()\n .diskType(\"CLOUD_PREMIUM\")\n .diskSize(50)\n .build())\n .internetChargeType(\"TRAFFIC_POSTPAID_BY_HOUR\")\n .internetMaxBandwidthOut(10)\n .publicIpAssigned(true)\n .password(\"test123#\")\n .enhancedSecurityService(false)\n .enhancedMonitorService(false)\n .hostName(\"12.123.0.0\")\n .hostNameStyle(\"ORIGINAL\")\n .build())\n .labels(Map.ofEntries(\n Map.entry(\"test1\", \"test1\"),\n Map.entry(\"test2\", \"test2\")\n ))\n .taints( \n NodePoolTaintArgs.builder()\n .key(\"test_taint\")\n .value(\"taint_value\")\n .effect(\"PreferNoSchedule\")\n .build(),\n NodePoolTaintArgs.builder()\n .key(\"test_taint2\")\n .value(\"taint_value2\")\n .effect(\"PreferNoSchedule\")\n .build())\n .nodeConfig(NodePoolNodeConfigArgs.builder()\n .dockerGraphPath(\"/var/lib/docker\")\n .extraArgs(\"root-dir=/var/lib/kubelet\")\n .build())\n .build());\n\n }\n}\n```\n```yaml\nconfiguration:\n availabilityZone:\n type: string\n default: ap-guangzhou-3\n clusterCidr:\n type: string\n default: 172.31.0.0/16\n defaultInstanceType:\n type: string\n default: S1.SMALL1\nresources:\n # this is the cluster with empty worker config\n exampleCluster:\n type: tencentcloud:Kubernetes:Cluster\n properties:\n vpcId: ${vpc.instanceLists[0].vpcId}\n clusterCidr: ${clusterCidr}\n clusterMaxPodNum: 32\n clusterName: tf-tke-unit-test\n clusterDesc: test cluster desc\n clusterMaxServiceNum: 32\n clusterVersion: 1.18.4\n clusterDeployType: MANAGED_CLUSTER\n # this is one example of managing node using node pool\n exampleNodePool:\n type: tencentcloud:Kubernetes:NodePool\n properties:\n clusterId: ${exampleCluster.id}\n maxSize: 6\n minSize: 1\n vpcId: ${vpc.instanceLists[0].vpcId}\n subnetIds:\n - ${vpc.instanceLists[0].subnetId}\n retryPolicy: INCREMENTAL_INTERVALS\n desiredCapacity: 4\n enableAutoScale: true\n multiZoneSubnetPolicy: EQUALITY\n nodeOs: img-9qrfy1xt\n autoScalingConfig:\n instanceType: ${defaultInstanceType}\n systemDiskType: CLOUD_PREMIUM\n systemDiskSize: '50'\n orderlySecurityGroupIds:\n - sg-24vswocp\n dataDisks:\n - diskType: CLOUD_PREMIUM\n diskSize: 50\n internetChargeType: TRAFFIC_POSTPAID_BY_HOUR\n internetMaxBandwidthOut: 10\n publicIpAssigned: true\n password: test123#\n enhancedSecurityService: false\n enhancedMonitorService: false\n hostName: 12.123.0.0\n hostNameStyle: ORIGINAL\n labels:\n test1: test1\n test2: test2\n taints:\n - key: test_taint\n value: taint_value\n effect: PreferNoSchedule\n - key: test_taint2\n value: taint_value2\n effect: PreferNoSchedule\n nodeConfig:\n dockerGraphPath: /var/lib/docker\n extraArgs:\n - root-dir=/var/lib/kubelet\nvariables:\n vpc:\n fn::invoke:\n Function: tencentcloud:Vpc:getSubnets\n Arguments:\n isDefault: true\n availabilityZone: ${availabilityZone}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Using Spot CVM Instance\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as tencentcloud from \"@tencentcloud_iac/pulumi\";\n\nconst example = new tencentcloud.kubernetes.NodePool(\"example\", {\n clusterId: tencentcloud_kubernetes_cluster.managed_cluster.id,\n maxSize: 6,\n minSize: 1,\n vpcId: data.tencentcloud_vpc_subnets.vpc.instance_list[0].vpc_id,\n subnetIds: [data.tencentcloud_vpc_subnets.vpc.instance_list[0].subnet_id],\n retryPolicy: \"INCREMENTAL_INTERVALS\",\n desiredCapacity: 4,\n enableAutoScale: true,\n multiZoneSubnetPolicy: \"EQUALITY\",\n autoScalingConfig: {\n instanceType: _var.default_instance_type,\n systemDiskType: \"CLOUD_PREMIUM\",\n systemDiskSize: 50,\n orderlySecurityGroupIds: [\n \"sg-24vswocp\",\n \"sg-3qntci2v\",\n \"sg-7y1t2wax\",\n ],\n instanceChargeType: \"SPOTPAID\",\n spotInstanceType: \"one-time\",\n spotMaxPrice: \"1000\",\n dataDisks: [{\n diskType: \"CLOUD_PREMIUM\",\n diskSize: 50,\n }],\n internetChargeType: \"TRAFFIC_POSTPAID_BY_HOUR\",\n internetMaxBandwidthOut: 10,\n publicIpAssigned: true,\n password: \"test123#\",\n enhancedSecurityService: false,\n enhancedMonitorService: false,\n },\n labels: {\n test1: \"test1\",\n test2: \"test2\",\n },\n});\n```\n```python\nimport pulumi\nimport tencentcloud_iac_pulumi as tencentcloud\n\nexample = tencentcloud.kubernetes.NodePool(\"example\",\n cluster_id=tencentcloud_kubernetes_cluster[\"managed_cluster\"][\"id\"],\n max_size=6,\n min_size=1,\n vpc_id=data[\"tencentcloud_vpc_subnets\"][\"vpc\"][\"instance_list\"][0][\"vpc_id\"],\n subnet_ids=[data[\"tencentcloud_vpc_subnets\"][\"vpc\"][\"instance_list\"][0][\"subnet_id\"]],\n retry_policy=\"INCREMENTAL_INTERVALS\",\n desired_capacity=4,\n enable_auto_scale=True,\n multi_zone_subnet_policy=\"EQUALITY\",\n auto_scaling_config=tencentcloud.kubernetes.NodePoolAutoScalingConfigArgs(\n instance_type=var[\"default_instance_type\"],\n system_disk_type=\"CLOUD_PREMIUM\",\n system_disk_size=50,\n orderly_security_group_ids=[\n \"sg-24vswocp\",\n \"sg-3qntci2v\",\n \"sg-7y1t2wax\",\n ],\n instance_charge_type=\"SPOTPAID\",\n spot_instance_type=\"one-time\",\n spot_max_price=\"1000\",\n data_disks=[tencentcloud.kubernetes.NodePoolAutoScalingConfigDataDiskArgs(\n disk_type=\"CLOUD_PREMIUM\",\n disk_size=50,\n )],\n internet_charge_type=\"TRAFFIC_POSTPAID_BY_HOUR\",\n internet_max_bandwidth_out=10,\n public_ip_assigned=True,\n password=\"test123#\",\n enhanced_security_service=False,\n enhanced_monitor_service=False,\n ),\n labels={\n \"test1\": \"test1\",\n \"test2\": \"test2\",\n })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Tencentcloud = TencentCloudIAC.PulumiPackage.Tencentcloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new Tencentcloud.Kubernetes.NodePool(\"example\", new()\n {\n ClusterId = tencentcloud_kubernetes_cluster.Managed_cluster.Id,\n MaxSize = 6,\n MinSize = 1,\n VpcId = data.Tencentcloud_vpc_subnets.Vpc.Instance_list[0].Vpc_id,\n SubnetIds = new[]\n {\n data.Tencentcloud_vpc_subnets.Vpc.Instance_list[0].Subnet_id,\n },\n RetryPolicy = \"INCREMENTAL_INTERVALS\",\n DesiredCapacity = 4,\n EnableAutoScale = true,\n MultiZoneSubnetPolicy = \"EQUALITY\",\n AutoScalingConfig = new Tencentcloud.Kubernetes.Inputs.NodePoolAutoScalingConfigArgs\n {\n InstanceType = @var.Default_instance_type,\n SystemDiskType = \"CLOUD_PREMIUM\",\n SystemDiskSize = 50,\n OrderlySecurityGroupIds = new[]\n {\n \"sg-24vswocp\",\n \"sg-3qntci2v\",\n \"sg-7y1t2wax\",\n },\n InstanceChargeType = \"SPOTPAID\",\n SpotInstanceType = \"one-time\",\n SpotMaxPrice = \"1000\",\n DataDisks = new[]\n {\n new Tencentcloud.Kubernetes.Inputs.NodePoolAutoScalingConfigDataDiskArgs\n {\n DiskType = \"CLOUD_PREMIUM\",\n DiskSize = 50,\n },\n },\n InternetChargeType = \"TRAFFIC_POSTPAID_BY_HOUR\",\n InternetMaxBandwidthOut = 10,\n PublicIpAssigned = true,\n Password = \"test123#\",\n EnhancedSecurityService = false,\n EnhancedMonitorService = false,\n },\n Labels = \n {\n { \"test1\", \"test1\" },\n { \"test2\", \"test2\" },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/tencentcloudstack/pulumi-tencentcloud/sdk/go/tencentcloud/Kubernetes\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := Kubernetes.NewNodePool(ctx, \"example\", \u0026Kubernetes.NodePoolArgs{\n\t\t\tClusterId: pulumi.Any(tencentcloud_kubernetes_cluster.Managed_cluster.Id),\n\t\t\tMaxSize: pulumi.Int(6),\n\t\t\tMinSize: pulumi.Int(1),\n\t\t\tVpcId: pulumi.Any(data.Tencentcloud_vpc_subnets.Vpc.Instance_list[0].Vpc_id),\n\t\t\tSubnetIds: pulumi.StringArray{\n\t\t\t\tdata.Tencentcloud_vpc_subnets.Vpc.Instance_list[0].Subnet_id,\n\t\t\t},\n\t\t\tRetryPolicy: pulumi.String(\"INCREMENTAL_INTERVALS\"),\n\t\t\tDesiredCapacity: pulumi.Int(4),\n\t\t\tEnableAutoScale: pulumi.Bool(true),\n\t\t\tMultiZoneSubnetPolicy: pulumi.String(\"EQUALITY\"),\n\t\t\tAutoScalingConfig: \u0026kubernetes.NodePoolAutoScalingConfigArgs{\n\t\t\t\tInstanceType: pulumi.Any(_var.Default_instance_type),\n\t\t\t\tSystemDiskType: pulumi.String(\"CLOUD_PREMIUM\"),\n\t\t\t\tSystemDiskSize: pulumi.Int(50),\n\t\t\t\tOrderlySecurityGroupIds: pulumi.StringArray{\n\t\t\t\t\tpulumi.String(\"sg-24vswocp\"),\n\t\t\t\t\tpulumi.String(\"sg-3qntci2v\"),\n\t\t\t\t\tpulumi.String(\"sg-7y1t2wax\"),\n\t\t\t\t},\n\t\t\t\tInstanceChargeType: pulumi.String(\"SPOTPAID\"),\n\t\t\t\tSpotInstanceType: pulumi.String(\"one-time\"),\n\t\t\t\tSpotMaxPrice: pulumi.String(\"1000\"),\n\t\t\t\tDataDisks: kubernetes.NodePoolAutoScalingConfigDataDiskArray{\n\t\t\t\t\t\u0026kubernetes.NodePoolAutoScalingConfigDataDiskArgs{\n\t\t\t\t\t\tDiskType: pulumi.String(\"CLOUD_PREMIUM\"),\n\t\t\t\t\t\tDiskSize: pulumi.Int(50),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tInternetChargeType: pulumi.String(\"TRAFFIC_POSTPAID_BY_HOUR\"),\n\t\t\t\tInternetMaxBandwidthOut: pulumi.Int(10),\n\t\t\t\tPublicIpAssigned: pulumi.Bool(true),\n\t\t\t\tPassword: pulumi.String(\"test123#\"),\n\t\t\t\tEnhancedSecurityService: pulumi.Bool(false),\n\t\t\t\tEnhancedMonitorService: pulumi.Bool(false),\n\t\t\t},\n\t\t\tLabels: pulumi.Map{\n\t\t\t\t\"test1\": pulumi.Any(\"test1\"),\n\t\t\t\t\"test2\": pulumi.Any(\"test2\"),\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.tencentcloud.Kubernetes.NodePool;\nimport com.pulumi.tencentcloud.Kubernetes.NodePoolArgs;\nimport com.pulumi.tencentcloud.Kubernetes.inputs.NodePoolAutoScalingConfigArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 NodePool(\"example\", NodePoolArgs.builder() \n .clusterId(tencentcloud_kubernetes_cluster.managed_cluster().id())\n .maxSize(6)\n .minSize(1)\n .vpcId(data.tencentcloud_vpc_subnets().vpc().instance_list()[0].vpc_id())\n .subnetIds(data.tencentcloud_vpc_subnets().vpc().instance_list()[0].subnet_id())\n .retryPolicy(\"INCREMENTAL_INTERVALS\")\n .desiredCapacity(4)\n .enableAutoScale(true)\n .multiZoneSubnetPolicy(\"EQUALITY\")\n .autoScalingConfig(NodePoolAutoScalingConfigArgs.builder()\n .instanceType(var_.default_instance_type())\n .systemDiskType(\"CLOUD_PREMIUM\")\n .systemDiskSize(\"50\")\n .orderlySecurityGroupIds( \n \"sg-24vswocp\",\n \"sg-3qntci2v\",\n \"sg-7y1t2wax\")\n .instanceChargeType(\"SPOTPAID\")\n .spotInstanceType(\"one-time\")\n .spotMaxPrice(\"1000\")\n .dataDisks(NodePoolAutoScalingConfigDataDiskArgs.builder()\n .diskType(\"CLOUD_PREMIUM\")\n .diskSize(50)\n .build())\n .internetChargeType(\"TRAFFIC_POSTPAID_BY_HOUR\")\n .internetMaxBandwidthOut(10)\n .publicIpAssigned(true)\n .password(\"test123#\")\n .enhancedSecurityService(false)\n .enhancedMonitorService(false)\n .build())\n .labels(Map.ofEntries(\n Map.entry(\"test1\", \"test1\"),\n Map.entry(\"test2\", \"test2\")\n ))\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: tencentcloud:Kubernetes:NodePool\n properties:\n clusterId: ${tencentcloud_kubernetes_cluster.managed_cluster.id}\n maxSize: 6\n minSize: 1\n vpcId: ${data.tencentcloud_vpc_subnets.vpc.instance_list[0].vpc_id}\n subnetIds:\n - ${data.tencentcloud_vpc_subnets.vpc.instance_list[0].subnet_id}\n retryPolicy: INCREMENTAL_INTERVALS\n desiredCapacity: 4\n enableAutoScale: true\n multiZoneSubnetPolicy: EQUALITY\n autoScalingConfig:\n instanceType: ${var.default_instance_type}\n systemDiskType: CLOUD_PREMIUM\n systemDiskSize: '50'\n orderlySecurityGroupIds:\n - sg-24vswocp\n - sg-3qntci2v\n - sg-7y1t2wax\n instanceChargeType: SPOTPAID\n spotInstanceType: one-time\n spotMaxPrice: '1000'\n dataDisks:\n - diskType: CLOUD_PREMIUM\n diskSize: 50\n internetChargeType: TRAFFIC_POSTPAID_BY_HOUR\n internetMaxBandwidthOut: 10\n publicIpAssigned: true\n password: test123#\n enhancedSecurityService: false\n enhancedMonitorService: false\n labels:\n test1: test1\n test2: test2\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as tencentcloud from \"@tencentcloud_iac/pulumi\";\n\nconst example = new tencentcloud.kubernetes.NodePool(\"example\", {\n clusterId: tencentcloud_kubernetes_cluster.managed_cluster.id,\n maxSize: 100,\n minSize: 1,\n vpcId: data.tencentcloud_vpc_subnets.vpc.instance_list[0].vpc_id,\n subnetIds: [data.tencentcloud_vpc_subnets.vpc.instance_list[0].subnet_id],\n retryPolicy: \"INCREMENTAL_INTERVALS\",\n desiredCapacity: 50,\n enableAutoScale: false,\n waitNodeReady: true,\n scaleTolerance: 90,\n multiZoneSubnetPolicy: \"EQUALITY\",\n nodeOs: \"img-6n21msk1\",\n deleteKeepInstance: false,\n autoScalingConfig: {\n instanceType: _var.default_instance_type,\n systemDiskType: \"CLOUD_PREMIUM\",\n systemDiskSize: 50,\n orderlySecurityGroupIds: [\"sg-bw28gmso\"],\n dataDisks: [{\n diskType: \"CLOUD_PREMIUM\",\n diskSize: 50,\n deleteWithInstance: true,\n }],\n internetChargeType: \"TRAFFIC_POSTPAID_BY_HOUR\",\n internetMaxBandwidthOut: 10,\n publicIpAssigned: true,\n password: \"test123#\",\n enhancedSecurityService: false,\n enhancedMonitorService: false,\n hostName: \"12.123.0.0\",\n hostNameStyle: \"ORIGINAL\",\n },\n labels: {\n test1: \"test1\",\n test2: \"test2\",\n },\n taints: [\n {\n key: \"test_taint\",\n value: \"taint_value\",\n effect: \"PreferNoSchedule\",\n },\n {\n key: \"test_taint2\",\n value: \"taint_value2\",\n effect: \"PreferNoSchedule\",\n },\n ],\n nodeConfig: {\n dockerGraphPath: \"/var/lib/docker\",\n extraArgs: [\"root-dir=/var/lib/kubelet\"],\n },\n});\n```\n```python\nimport pulumi\nimport tencentcloud_iac_pulumi as tencentcloud\n\nexample = tencentcloud.kubernetes.NodePool(\"example\",\n cluster_id=tencentcloud_kubernetes_cluster[\"managed_cluster\"][\"id\"],\n max_size=100,\n min_size=1,\n vpc_id=data[\"tencentcloud_vpc_subnets\"][\"vpc\"][\"instance_list\"][0][\"vpc_id\"],\n subnet_ids=[data[\"tencentcloud_vpc_subnets\"][\"vpc\"][\"instance_list\"][0][\"subnet_id\"]],\n retry_policy=\"INCREMENTAL_INTERVALS\",\n desired_capacity=50,\n enable_auto_scale=False,\n wait_node_ready=True,\n scale_tolerance=90,\n multi_zone_subnet_policy=\"EQUALITY\",\n node_os=\"img-6n21msk1\",\n delete_keep_instance=False,\n auto_scaling_config=tencentcloud.kubernetes.NodePoolAutoScalingConfigArgs(\n instance_type=var[\"default_instance_type\"],\n system_disk_type=\"CLOUD_PREMIUM\",\n system_disk_size=50,\n orderly_security_group_ids=[\"sg-bw28gmso\"],\n data_disks=[tencentcloud.kubernetes.NodePoolAutoScalingConfigDataDiskArgs(\n disk_type=\"CLOUD_PREMIUM\",\n disk_size=50,\n delete_with_instance=True,\n )],\n internet_charge_type=\"TRAFFIC_POSTPAID_BY_HOUR\",\n internet_max_bandwidth_out=10,\n public_ip_assigned=True,\n password=\"test123#\",\n enhanced_security_service=False,\n enhanced_monitor_service=False,\n host_name=\"12.123.0.0\",\n host_name_style=\"ORIGINAL\",\n ),\n labels={\n \"test1\": \"test1\",\n \"test2\": \"test2\",\n },\n taints=[\n tencentcloud.kubernetes.NodePoolTaintArgs(\n key=\"test_taint\",\n value=\"taint_value\",\n effect=\"PreferNoSchedule\",\n ),\n tencentcloud.kubernetes.NodePoolTaintArgs(\n key=\"test_taint2\",\n value=\"taint_value2\",\n effect=\"PreferNoSchedule\",\n ),\n ],\n node_config=tencentcloud.kubernetes.NodePoolNodeConfigArgs(\n docker_graph_path=\"/var/lib/docker\",\n extra_args=[\"root-dir=/var/lib/kubelet\"],\n ))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Tencentcloud = TencentCloudIAC.PulumiPackage.Tencentcloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new Tencentcloud.Kubernetes.NodePool(\"example\", new()\n {\n ClusterId = tencentcloud_kubernetes_cluster.Managed_cluster.Id,\n MaxSize = 100,\n MinSize = 1,\n VpcId = data.Tencentcloud_vpc_subnets.Vpc.Instance_list[0].Vpc_id,\n SubnetIds = new[]\n {\n data.Tencentcloud_vpc_subnets.Vpc.Instance_list[0].Subnet_id,\n },\n RetryPolicy = \"INCREMENTAL_INTERVALS\",\n DesiredCapacity = 50,\n EnableAutoScale = false,\n WaitNodeReady = true,\n ScaleTolerance = 90,\n MultiZoneSubnetPolicy = \"EQUALITY\",\n NodeOs = \"img-6n21msk1\",\n DeleteKeepInstance = false,\n AutoScalingConfig = new Tencentcloud.Kubernetes.Inputs.NodePoolAutoScalingConfigArgs\n {\n InstanceType = @var.Default_instance_type,\n SystemDiskType = \"CLOUD_PREMIUM\",\n SystemDiskSize = 50,\n OrderlySecurityGroupIds = new[]\n {\n \"sg-bw28gmso\",\n },\n DataDisks = new[]\n {\n new Tencentcloud.Kubernetes.Inputs.NodePoolAutoScalingConfigDataDiskArgs\n {\n DiskType = \"CLOUD_PREMIUM\",\n DiskSize = 50,\n DeleteWithInstance = true,\n },\n },\n InternetChargeType = \"TRAFFIC_POSTPAID_BY_HOUR\",\n InternetMaxBandwidthOut = 10,\n PublicIpAssigned = true,\n Password = \"test123#\",\n EnhancedSecurityService = false,\n EnhancedMonitorService = false,\n HostName = \"12.123.0.0\",\n HostNameStyle = \"ORIGINAL\",\n },\n Labels = \n {\n { \"test1\", \"test1\" },\n { \"test2\", \"test2\" },\n },\n Taints = new[]\n {\n new Tencentcloud.Kubernetes.Inputs.NodePoolTaintArgs\n {\n Key = \"test_taint\",\n Value = \"taint_value\",\n Effect = \"PreferNoSchedule\",\n },\n new Tencentcloud.Kubernetes.Inputs.NodePoolTaintArgs\n {\n Key = \"test_taint2\",\n Value = \"taint_value2\",\n Effect = \"PreferNoSchedule\",\n },\n },\n NodeConfig = new Tencentcloud.Kubernetes.Inputs.NodePoolNodeConfigArgs\n {\n DockerGraphPath = \"/var/lib/docker\",\n ExtraArgs = new[]\n {\n \"root-dir=/var/lib/kubelet\",\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/tencentcloudstack/pulumi-tencentcloud/sdk/go/tencentcloud/Kubernetes\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := Kubernetes.NewNodePool(ctx, \"example\", \u0026Kubernetes.NodePoolArgs{\n\t\t\tClusterId: pulumi.Any(tencentcloud_kubernetes_cluster.Managed_cluster.Id),\n\t\t\tMaxSize: pulumi.Int(100),\n\t\t\tMinSize: pulumi.Int(1),\n\t\t\tVpcId: pulumi.Any(data.Tencentcloud_vpc_subnets.Vpc.Instance_list[0].Vpc_id),\n\t\t\tSubnetIds: pulumi.StringArray{\n\t\t\t\tdata.Tencentcloud_vpc_subnets.Vpc.Instance_list[0].Subnet_id,\n\t\t\t},\n\t\t\tRetryPolicy: pulumi.String(\"INCREMENTAL_INTERVALS\"),\n\t\t\tDesiredCapacity: pulumi.Int(50),\n\t\t\tEnableAutoScale: pulumi.Bool(false),\n\t\t\tWaitNodeReady: pulumi.Bool(true),\n\t\t\tScaleTolerance: pulumi.Int(90),\n\t\t\tMultiZoneSubnetPolicy: pulumi.String(\"EQUALITY\"),\n\t\t\tNodeOs: pulumi.String(\"img-6n21msk1\"),\n\t\t\tDeleteKeepInstance: pulumi.Bool(false),\n\t\t\tAutoScalingConfig: \u0026kubernetes.NodePoolAutoScalingConfigArgs{\n\t\t\t\tInstanceType: pulumi.Any(_var.Default_instance_type),\n\t\t\t\tSystemDiskType: pulumi.String(\"CLOUD_PREMIUM\"),\n\t\t\t\tSystemDiskSize: pulumi.Int(50),\n\t\t\t\tOrderlySecurityGroupIds: pulumi.StringArray{\n\t\t\t\t\tpulumi.String(\"sg-bw28gmso\"),\n\t\t\t\t},\n\t\t\t\tDataDisks: kubernetes.NodePoolAutoScalingConfigDataDiskArray{\n\t\t\t\t\t\u0026kubernetes.NodePoolAutoScalingConfigDataDiskArgs{\n\t\t\t\t\t\tDiskType: pulumi.String(\"CLOUD_PREMIUM\"),\n\t\t\t\t\t\tDiskSize: pulumi.Int(50),\n\t\t\t\t\t\tDeleteWithInstance: pulumi.Bool(true),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tInternetChargeType: pulumi.String(\"TRAFFIC_POSTPAID_BY_HOUR\"),\n\t\t\t\tInternetMaxBandwidthOut: pulumi.Int(10),\n\t\t\t\tPublicIpAssigned: pulumi.Bool(true),\n\t\t\t\tPassword: pulumi.String(\"test123#\"),\n\t\t\t\tEnhancedSecurityService: pulumi.Bool(false),\n\t\t\t\tEnhancedMonitorService: pulumi.Bool(false),\n\t\t\t\tHostName: pulumi.String(\"12.123.0.0\"),\n\t\t\t\tHostNameStyle: pulumi.String(\"ORIGINAL\"),\n\t\t\t},\n\t\t\tLabels: pulumi.Map{\n\t\t\t\t\"test1\": pulumi.Any(\"test1\"),\n\t\t\t\t\"test2\": pulumi.Any(\"test2\"),\n\t\t\t},\n\t\t\tTaints: kubernetes.NodePoolTaintArray{\n\t\t\t\t\u0026kubernetes.NodePoolTaintArgs{\n\t\t\t\t\tKey: pulumi.String(\"test_taint\"),\n\t\t\t\t\tValue: pulumi.String(\"taint_value\"),\n\t\t\t\t\tEffect: pulumi.String(\"PreferNoSchedule\"),\n\t\t\t\t},\n\t\t\t\t\u0026kubernetes.NodePoolTaintArgs{\n\t\t\t\t\tKey: pulumi.String(\"test_taint2\"),\n\t\t\t\t\tValue: pulumi.String(\"taint_value2\"),\n\t\t\t\t\tEffect: pulumi.String(\"PreferNoSchedule\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tNodeConfig: \u0026kubernetes.NodePoolNodeConfigArgs{\n\t\t\t\tDockerGraphPath: pulumi.String(\"/var/lib/docker\"),\n\t\t\t\tExtraArgs: pulumi.StringArray{\n\t\t\t\t\tpulumi.String(\"root-dir=/var/lib/kubelet\"),\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.tencentcloud.Kubernetes.NodePool;\nimport com.pulumi.tencentcloud.Kubernetes.NodePoolArgs;\nimport com.pulumi.tencentcloud.Kubernetes.inputs.NodePoolAutoScalingConfigArgs;\nimport com.pulumi.tencentcloud.Kubernetes.inputs.NodePoolTaintArgs;\nimport com.pulumi.tencentcloud.Kubernetes.inputs.NodePoolNodeConfigArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 NodePool(\"example\", NodePoolArgs.builder() \n .clusterId(tencentcloud_kubernetes_cluster.managed_cluster().id())\n .maxSize(100)\n .minSize(1)\n .vpcId(data.tencentcloud_vpc_subnets().vpc().instance_list()[0].vpc_id())\n .subnetIds(data.tencentcloud_vpc_subnets().vpc().instance_list()[0].subnet_id())\n .retryPolicy(\"INCREMENTAL_INTERVALS\")\n .desiredCapacity(50)\n .enableAutoScale(false)\n .waitNodeReady(true)\n .scaleTolerance(90)\n .multiZoneSubnetPolicy(\"EQUALITY\")\n .nodeOs(\"img-6n21msk1\")\n .deleteKeepInstance(false)\n .autoScalingConfig(NodePoolAutoScalingConfigArgs.builder()\n .instanceType(var_.default_instance_type())\n .systemDiskType(\"CLOUD_PREMIUM\")\n .systemDiskSize(\"50\")\n .orderlySecurityGroupIds(\"sg-bw28gmso\")\n .dataDisks(NodePoolAutoScalingConfigDataDiskArgs.builder()\n .diskType(\"CLOUD_PREMIUM\")\n .diskSize(50)\n .deleteWithInstance(true)\n .build())\n .internetChargeType(\"TRAFFIC_POSTPAID_BY_HOUR\")\n .internetMaxBandwidthOut(10)\n .publicIpAssigned(true)\n .password(\"test123#\")\n .enhancedSecurityService(false)\n .enhancedMonitorService(false)\n .hostName(\"12.123.0.0\")\n .hostNameStyle(\"ORIGINAL\")\n .build())\n .labels(Map.ofEntries(\n Map.entry(\"test1\", \"test1\"),\n Map.entry(\"test2\", \"test2\")\n ))\n .taints( \n NodePoolTaintArgs.builder()\n .key(\"test_taint\")\n .value(\"taint_value\")\n .effect(\"PreferNoSchedule\")\n .build(),\n NodePoolTaintArgs.builder()\n .key(\"test_taint2\")\n .value(\"taint_value2\")\n .effect(\"PreferNoSchedule\")\n .build())\n .nodeConfig(NodePoolNodeConfigArgs.builder()\n .dockerGraphPath(\"/var/lib/docker\")\n .extraArgs(\"root-dir=/var/lib/kubelet\")\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: tencentcloud:Kubernetes:NodePool\n properties:\n clusterId: ${tencentcloud_kubernetes_cluster.managed_cluster.id}\n maxSize: 100\n minSize: 1\n vpcId: ${data.tencentcloud_vpc_subnets.vpc.instance_list[0].vpc_id}\n subnetIds:\n - ${data.tencentcloud_vpc_subnets.vpc.instance_list[0].subnet_id}\n retryPolicy: INCREMENTAL_INTERVALS\n desiredCapacity: 50\n enableAutoScale: false\n waitNodeReady: true\n scaleTolerance: 90\n multiZoneSubnetPolicy: EQUALITY\n nodeOs: img-6n21msk1\n deleteKeepInstance: false\n autoScalingConfig:\n instanceType: ${var.default_instance_type}\n systemDiskType: CLOUD_PREMIUM\n systemDiskSize: '50'\n orderlySecurityGroupIds:\n - sg-bw28gmso\n dataDisks:\n - diskType: CLOUD_PREMIUM\n diskSize: 50\n deleteWithInstance: true\n internetChargeType: TRAFFIC_POSTPAID_BY_HOUR\n internetMaxBandwidthOut: 10\n publicIpAssigned: true\n password: test123#\n enhancedSecurityService: false\n enhancedMonitorService: false\n hostName: 12.123.0.0\n hostNameStyle: ORIGINAL\n labels:\n test1: test1\n test2: test2\n taints:\n - key: test_taint\n value: taint_value\n effect: PreferNoSchedule\n - key: test_taint2\n value: taint_value2\n effect: PreferNoSchedule\n nodeConfig:\n dockerGraphPath: /var/lib/docker\n extraArgs:\n - root-dir=/var/lib/kubelet\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\ntke node pool can be imported, e.g.\n\n```sh\n$ pulumi import tencentcloud:Kubernetes/nodePool:NodePool example cls-d2xdg3io#np-380ay1o8\n```\n", "properties": { "annotations": { "type": "array", @@ -178603,6 +179023,10 @@ "type": "string", "description": "Available values for retry policies include `IMMEDIATE_RETRY` and `INCREMENTAL_INTERVALS`.\n" }, + "scaleTolerance": { + "type": "integer", + "description": "Control how many expectations(`desired_capacity`) can be tolerated successfully. Unit is percentage, Default is `100`. Only can be set if `wait_node_ready` is `true`.\n" + }, "scalingGroupName": { "type": "string", "description": "Name of relative scaling group.\n" @@ -178652,6 +179076,10 @@ "type": "string", "description": "ID of VPC network.\n" }, + "waitNodeReady": { + "type": "boolean", + "description": "Whether to wait for all expansion resources to be ready. Default is false. Only can be set if `enable_auto_scale` is `false`.\n" + }, "zones": { "type": "array", "items": { @@ -178758,6 +179186,10 @@ "description": "Available values for retry policies include `IMMEDIATE_RETRY` and `INCREMENTAL_INTERVALS`.\n", "willReplaceOnChanges": true }, + "scaleTolerance": { + "type": "integer", + "description": "Control how many expectations(`desired_capacity`) can be tolerated successfully. Unit is percentage, Default is `100`. Only can be set if `wait_node_ready` is `true`.\n" + }, "scalingGroupName": { "type": "string", "description": "Name of relative scaling group.\n" @@ -178807,6 +179239,10 @@ "description": "ID of VPC network.\n", "willReplaceOnChanges": true }, + "waitNodeReady": { + "type": "boolean", + "description": "Whether to wait for all expansion resources to be ready. Default is false. Only can be set if `enable_auto_scale` is `false`.\n" + }, "zones": { "type": "array", "items": { @@ -178921,6 +179357,10 @@ "description": "Available values for retry policies include `IMMEDIATE_RETRY` and `INCREMENTAL_INTERVALS`.\n", "willReplaceOnChanges": true }, + "scaleTolerance": { + "type": "integer", + "description": "Control how many expectations(`desired_capacity`) can be tolerated successfully. Unit is percentage, Default is `100`. Only can be set if `wait_node_ready` is `true`.\n" + }, "scalingGroupName": { "type": "string", "description": "Name of relative scaling group.\n" @@ -178974,6 +179414,10 @@ "description": "ID of VPC network.\n", "willReplaceOnChanges": true }, + "waitNodeReady": { + "type": "boolean", + "description": "Whether to wait for all expansion resources to be ready. Default is false. Only can be set if `enable_auto_scale` is `false`.\n" + }, "zones": { "type": "array", "items": { @@ -203296,6 +203740,7 @@ } }, "tencentcloud:Reserve/ipAddress:IpAddress": { + "description": "Provides a resource to create a vpc reserve ip addresses\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as tencentcloud from \"@tencentcloud_iac/pulumi\";\n\nconst reserveIp = new tencentcloud.reserve.IpAddress(\"reserveIp\", {\n description: \"description\",\n ipAddress: \"10.0.0.13\",\n subnetId: \"xxxxxx\",\n tags: {\n test1: \"test1\",\n },\n vpcId: \"xxxxxx\",\n});\n```\n```python\nimport pulumi\nimport tencentcloud_iac_pulumi as tencentcloud\n\nreserve_ip = tencentcloud.reserve.IpAddress(\"reserveIp\",\n description=\"description\",\n ip_address=\"10.0.0.13\",\n subnet_id=\"xxxxxx\",\n tags={\n \"test1\": \"test1\",\n },\n vpc_id=\"xxxxxx\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Tencentcloud = TencentCloudIAC.PulumiPackage.Tencentcloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var reserveIp = new Tencentcloud.Reserve.IpAddress(\"reserveIp\", new()\n {\n Description = \"description\",\n ReserveIpAddress = \"10.0.0.13\",\n SubnetId = \"xxxxxx\",\n Tags = \n {\n { \"test1\", \"test1\" },\n },\n VpcId = \"xxxxxx\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/tencentcloudstack/pulumi-tencentcloud/sdk/go/tencentcloud/Reserve\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := Reserve.NewIpAddress(ctx, \"reserveIp\", \u0026Reserve.IpAddressArgs{\n\t\t\tDescription: pulumi.String(\"description\"),\n\t\t\tIpAddress: pulumi.String(\"10.0.0.13\"),\n\t\t\tSubnetId: pulumi.String(\"xxxxxx\"),\n\t\t\tTags: pulumi.Map{\n\t\t\t\t\"test1\": pulumi.Any(\"test1\"),\n\t\t\t},\n\t\t\tVpcId: pulumi.String(\"xxxxxx\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.tencentcloud.Reserve.IpAddress;\nimport com.pulumi.tencentcloud.Reserve.IpAddressArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 reserveIp = new IpAddress(\"reserveIp\", IpAddressArgs.builder() \n .description(\"description\")\n .ipAddress(\"10.0.0.13\")\n .subnetId(\"xxxxxx\")\n .tags(Map.of(\"test1\", \"test1\"))\n .vpcId(\"xxxxxx\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n reserveIp:\n type: tencentcloud:Reserve:IpAddress\n properties:\n description: description\n ipAddress: 10.0.0.13\n subnetId: xxxxxx\n tags:\n test1: test1\n vpcId: xxxxxx\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nvpc reserve_ip_addresses can be imported using the id, e.g.\n\n```sh\n$ pulumi import tencentcloud:Reserve/ipAddress:IpAddress reserve_ip_addresses ${vpcId}#${reserveIpId}\n```\n\n", "properties": { "createdTime": { "type": "string", @@ -204534,6 +204979,100 @@ "type": "object" } }, + "tencentcloud:Scf/customDomain:CustomDomain": { + "description": "Provides a resource to create a scf custom domain\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as tencentcloud from \"@tencentcloud_iac/pulumi\";\n\nconst scfCustomDomain = new tencentcloud.scf.CustomDomain(\"scfCustomDomain\", {\n domain: \"xxxxxx\",\n endpointsConfigs: [{\n functionName: \"xxxxxx\",\n namespace: \"default\",\n pathMatch: \"/aa/*\",\n qualifier: \"$LATEST\",\n }],\n protocol: \"HTTP\",\n wafConfig: {\n wafOpen: \"CLOSE\",\n },\n});\n```\n```python\nimport pulumi\nimport tencentcloud_iac_pulumi as tencentcloud\n\nscf_custom_domain = tencentcloud.scf.CustomDomain(\"scfCustomDomain\",\n domain=\"xxxxxx\",\n endpoints_configs=[tencentcloud.scf.CustomDomainEndpointsConfigArgs(\n function_name=\"xxxxxx\",\n namespace=\"default\",\n path_match=\"/aa/*\",\n qualifier=\"$LATEST\",\n )],\n protocol=\"HTTP\",\n waf_config=tencentcloud.scf.CustomDomainWafConfigArgs(\n waf_open=\"CLOSE\",\n ))\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Tencentcloud = TencentCloudIAC.PulumiPackage.Tencentcloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var scfCustomDomain = new Tencentcloud.Scf.CustomDomain(\"scfCustomDomain\", new()\n {\n Domain = \"xxxxxx\",\n EndpointsConfigs = new[]\n {\n new Tencentcloud.Scf.Inputs.CustomDomainEndpointsConfigArgs\n {\n FunctionName = \"xxxxxx\",\n Namespace = \"default\",\n PathMatch = \"/aa/*\",\n Qualifier = \"$LATEST\",\n },\n },\n Protocol = \"HTTP\",\n WafConfig = new Tencentcloud.Scf.Inputs.CustomDomainWafConfigArgs\n {\n WafOpen = \"CLOSE\",\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/tencentcloudstack/pulumi-tencentcloud/sdk/go/tencentcloud/Scf\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := Scf.NewCustomDomain(ctx, \"scfCustomDomain\", \u0026Scf.CustomDomainArgs{\n\t\t\tDomain: pulumi.String(\"xxxxxx\"),\n\t\t\tEndpointsConfigs: scf.CustomDomainEndpointsConfigArray{\n\t\t\t\t\u0026scf.CustomDomainEndpointsConfigArgs{\n\t\t\t\t\tFunctionName: pulumi.String(\"xxxxxx\"),\n\t\t\t\t\tNamespace: pulumi.String(\"default\"),\n\t\t\t\t\tPathMatch: pulumi.String(\"/aa/*\"),\n\t\t\t\t\tQualifier: pulumi.String(\"$LATEST\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tProtocol: pulumi.String(\"HTTP\"),\n\t\t\tWafConfig: \u0026scf.CustomDomainWafConfigArgs{\n\t\t\t\tWafOpen: pulumi.String(\"CLOSE\"),\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.tencentcloud.Scf.CustomDomain;\nimport com.pulumi.tencentcloud.Scf.CustomDomainArgs;\nimport com.pulumi.tencentcloud.Scf.inputs.CustomDomainEndpointsConfigArgs;\nimport com.pulumi.tencentcloud.Scf.inputs.CustomDomainWafConfigArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 scfCustomDomain = new CustomDomain(\"scfCustomDomain\", CustomDomainArgs.builder() \n .domain(\"xxxxxx\")\n .endpointsConfigs(CustomDomainEndpointsConfigArgs.builder()\n .functionName(\"xxxxxx\")\n .namespace(\"default\")\n .pathMatch(\"/aa/*\")\n .qualifier(\"$LATEST\")\n .build())\n .protocol(\"HTTP\")\n .wafConfig(CustomDomainWafConfigArgs.builder()\n .wafOpen(\"CLOSE\")\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n scfCustomDomain:\n type: tencentcloud:Scf:CustomDomain\n properties:\n domain: xxxxxx\n endpointsConfigs:\n - functionName: xxxxxx\n namespace: default\n pathMatch: /aa/*\n qualifier: $LATEST\n protocol: HTTP\n wafConfig:\n wafOpen: CLOSE\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nscf scf_custom_domain can be imported using the id, e.g.\n\n```sh\n$ pulumi import tencentcloud:Scf/customDomain:CustomDomain scf_custom_domain ${domain}\n```\n\n", + "properties": { + "certConfig": { + "$ref": "#/types/tencentcloud:Scf/CustomDomainCertConfig:CustomDomainCertConfig", + "description": "Certificate configuration information, required for HTTPS protocol.\n" + }, + "domain": { + "type": "string", + "description": "Domain names, pan-domain names are not supported.\n" + }, + "endpointsConfigs": { + "type": "array", + "items": { + "$ref": "#/types/tencentcloud:Scf/CustomDomainEndpointsConfig:CustomDomainEndpointsConfig" + }, + "description": "Routing configuration.\n" + }, + "protocol": { + "type": "string", + "description": "Protocol, value range: HTTP, HTTPS, HTTP\u0026HTTPS.\n" + }, + "wafConfig": { + "$ref": "#/types/tencentcloud:Scf/CustomDomainWafConfig:CustomDomainWafConfig", + "description": "Web Application Firewall Configuration.\n" + } + }, + "required": [ + "certConfig", + "domain", + "endpointsConfigs", + "protocol", + "wafConfig" + ], + "inputProperties": { + "certConfig": { + "$ref": "#/types/tencentcloud:Scf/CustomDomainCertConfig:CustomDomainCertConfig", + "description": "Certificate configuration information, required for HTTPS protocol.\n" + }, + "domain": { + "type": "string", + "description": "Domain names, pan-domain names are not supported.\n" + }, + "endpointsConfigs": { + "type": "array", + "items": { + "$ref": "#/types/tencentcloud:Scf/CustomDomainEndpointsConfig:CustomDomainEndpointsConfig" + }, + "description": "Routing configuration.\n" + }, + "protocol": { + "type": "string", + "description": "Protocol, value range: HTTP, HTTPS, HTTP\u0026HTTPS.\n" + }, + "wafConfig": { + "$ref": "#/types/tencentcloud:Scf/CustomDomainWafConfig:CustomDomainWafConfig", + "description": "Web Application Firewall Configuration.\n" + } + }, + "requiredInputs": [ + "domain", + "endpointsConfigs", + "protocol" + ], + "stateInputs": { + "description": "Input properties used for looking up and filtering CustomDomain resources.\n", + "properties": { + "certConfig": { + "$ref": "#/types/tencentcloud:Scf/CustomDomainCertConfig:CustomDomainCertConfig", + "description": "Certificate configuration information, required for HTTPS protocol.\n" + }, + "domain": { + "type": "string", + "description": "Domain names, pan-domain names are not supported.\n" + }, + "endpointsConfigs": { + "type": "array", + "items": { + "$ref": "#/types/tencentcloud:Scf/CustomDomainEndpointsConfig:CustomDomainEndpointsConfig" + }, + "description": "Routing configuration.\n" + }, + "protocol": { + "type": "string", + "description": "Protocol, value range: HTTP, HTTPS, HTTP\u0026HTTPS.\n" + }, + "wafConfig": { + "$ref": "#/types/tencentcloud:Scf/CustomDomainWafConfig:CustomDomainWafConfig", + "description": "Web Application Firewall Configuration.\n" + } + }, + "type": "object" + } + }, "tencentcloud:Scf/function:Function": { "description": "Provide a resource to create a SCF function.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as tencentcloud from \"@tencentcloud_iac/pulumi\";\n\nconst foo = new tencentcloud.scf.Function(\"foo\", {\n cosBucketName: \"scf-code-1234567890\",\n cosBucketRegion: \"ap-guangzhou\",\n cosObjectName: \"code.zip\",\n handler: \"main.do_it\",\n runtime: \"Python3.6\",\n});\n```\n```python\nimport pulumi\nimport tencentcloud_iac_pulumi as tencentcloud\n\nfoo = tencentcloud.scf.Function(\"foo\",\n cos_bucket_name=\"scf-code-1234567890\",\n cos_bucket_region=\"ap-guangzhou\",\n cos_object_name=\"code.zip\",\n handler=\"main.do_it\",\n runtime=\"Python3.6\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Tencentcloud = TencentCloudIAC.PulumiPackage.Tencentcloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var foo = new Tencentcloud.Scf.Function(\"foo\", new()\n {\n CosBucketName = \"scf-code-1234567890\",\n CosBucketRegion = \"ap-guangzhou\",\n CosObjectName = \"code.zip\",\n Handler = \"main.do_it\",\n Runtime = \"Python3.6\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/tencentcloudstack/pulumi-tencentcloud/sdk/go/tencentcloud/Scf\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := Scf.NewFunction(ctx, \"foo\", \u0026Scf.FunctionArgs{\n\t\t\tCosBucketName: pulumi.String(\"scf-code-1234567890\"),\n\t\t\tCosBucketRegion: pulumi.String(\"ap-guangzhou\"),\n\t\t\tCosObjectName: pulumi.String(\"code.zip\"),\n\t\t\tHandler: pulumi.String(\"main.do_it\"),\n\t\t\tRuntime: pulumi.String(\"Python3.6\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.tencentcloud.Scf.Function;\nimport com.pulumi.tencentcloud.Scf.FunctionArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 Function(\"foo\", FunctionArgs.builder() \n .cosBucketName(\"scf-code-1234567890\")\n .cosBucketRegion(\"ap-guangzhou\")\n .cosObjectName(\"code.zip\")\n .handler(\"main.do_it\")\n .runtime(\"Python3.6\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n foo:\n type: tencentcloud:Scf:Function\n properties:\n cosBucketName: scf-code-1234567890\n cosBucketRegion: ap-guangzhou\n cosObjectName: code.zip\n handler: main.do_it\n runtime: Python3.6\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Using Zip file\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as tencentcloud from \"@tencentcloud_iac/pulumi\";\n\nconst foo = new tencentcloud.scf.Function(\"foo\", {\n dnsCache: true,\n enablePublicNet: true,\n handler: \"first.do_it_first\",\n intranetConfig: {\n ipFixed: \"ENABLE\",\n },\n runtime: \"Python3.6\",\n subnetId: \"subnet-ljyn7h30\",\n tags: {\n env: \"test\",\n },\n vpcId: \"vpc-391sv4w3\",\n zipFile: \"/scf/first.zip\",\n});\n```\n```python\nimport pulumi\nimport tencentcloud_iac_pulumi as tencentcloud\n\nfoo = tencentcloud.scf.Function(\"foo\",\n dns_cache=True,\n enable_public_net=True,\n handler=\"first.do_it_first\",\n intranet_config=tencentcloud.scf.FunctionIntranetConfigArgs(\n ip_fixed=\"ENABLE\",\n ),\n runtime=\"Python3.6\",\n subnet_id=\"subnet-ljyn7h30\",\n tags={\n \"env\": \"test\",\n },\n vpc_id=\"vpc-391sv4w3\",\n zip_file=\"/scf/first.zip\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Tencentcloud = TencentCloudIAC.PulumiPackage.Tencentcloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var foo = new Tencentcloud.Scf.Function(\"foo\", new()\n {\n DnsCache = true,\n EnablePublicNet = true,\n Handler = \"first.do_it_first\",\n IntranetConfig = new Tencentcloud.Scf.Inputs.FunctionIntranetConfigArgs\n {\n IpFixed = \"ENABLE\",\n },\n Runtime = \"Python3.6\",\n SubnetId = \"subnet-ljyn7h30\",\n Tags = \n {\n { \"env\", \"test\" },\n },\n VpcId = \"vpc-391sv4w3\",\n ZipFile = \"/scf/first.zip\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/tencentcloudstack/pulumi-tencentcloud/sdk/go/tencentcloud/Scf\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := Scf.NewFunction(ctx, \"foo\", \u0026Scf.FunctionArgs{\n\t\t\tDnsCache: pulumi.Bool(true),\n\t\t\tEnablePublicNet: pulumi.Bool(true),\n\t\t\tHandler: pulumi.String(\"first.do_it_first\"),\n\t\t\tIntranetConfig: \u0026scf.FunctionIntranetConfigArgs{\n\t\t\t\tIpFixed: pulumi.String(\"ENABLE\"),\n\t\t\t},\n\t\t\tRuntime: pulumi.String(\"Python3.6\"),\n\t\t\tSubnetId: pulumi.String(\"subnet-ljyn7h30\"),\n\t\t\tTags: pulumi.Map{\n\t\t\t\t\"env\": pulumi.Any(\"test\"),\n\t\t\t},\n\t\t\tVpcId: pulumi.String(\"vpc-391sv4w3\"),\n\t\t\tZipFile: pulumi.String(\"/scf/first.zip\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.tencentcloud.Scf.Function;\nimport com.pulumi.tencentcloud.Scf.FunctionArgs;\nimport com.pulumi.tencentcloud.Scf.inputs.FunctionIntranetConfigArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 Function(\"foo\", FunctionArgs.builder() \n .dnsCache(true)\n .enablePublicNet(true)\n .handler(\"first.do_it_first\")\n .intranetConfig(FunctionIntranetConfigArgs.builder()\n .ipFixed(\"ENABLE\")\n .build())\n .runtime(\"Python3.6\")\n .subnetId(\"subnet-ljyn7h30\")\n .tags(Map.of(\"env\", \"test\"))\n .vpcId(\"vpc-391sv4w3\")\n .zipFile(\"/scf/first.zip\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n foo:\n type: tencentcloud:Scf:Function\n properties:\n dnsCache: true\n enablePublicNet: true\n handler: first.do_it_first\n intranetConfig:\n ipFixed: ENABLE\n runtime: Python3.6\n subnetId: subnet-ljyn7h30\n tags:\n env: test\n vpcId: vpc-391sv4w3\n zipFile: /scf/first.zip\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Using CFS config\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as tencentcloud from \"@tencentcloud_iac/pulumi\";\n\nconst foo = new tencentcloud.scf.Function(\"foo\", {\n cfsConfigs: [{\n cfsId: \"cfs-xxxxxxxx\",\n localMountDir: \"/mnt\",\n mountInsId: \"cfs-xxxxxxxx\",\n remoteMountDir: \"/\",\n userGroupId: \"10000\",\n userId: \"10000\",\n }],\n handler: \"main.do_it\",\n runtime: \"Python3.6\",\n});\n```\n```python\nimport pulumi\nimport tencentcloud_iac_pulumi as tencentcloud\n\nfoo = tencentcloud.scf.Function(\"foo\",\n cfs_configs=[tencentcloud.scf.FunctionCfsConfigArgs(\n cfs_id=\"cfs-xxxxxxxx\",\n local_mount_dir=\"/mnt\",\n mount_ins_id=\"cfs-xxxxxxxx\",\n remote_mount_dir=\"/\",\n user_group_id=\"10000\",\n user_id=\"10000\",\n )],\n handler=\"main.do_it\",\n runtime=\"Python3.6\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Tencentcloud = TencentCloudIAC.PulumiPackage.Tencentcloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var foo = new Tencentcloud.Scf.Function(\"foo\", new()\n {\n CfsConfigs = new[]\n {\n new Tencentcloud.Scf.Inputs.FunctionCfsConfigArgs\n {\n CfsId = \"cfs-xxxxxxxx\",\n LocalMountDir = \"/mnt\",\n MountInsId = \"cfs-xxxxxxxx\",\n RemoteMountDir = \"/\",\n UserGroupId = \"10000\",\n UserId = \"10000\",\n },\n },\n Handler = \"main.do_it\",\n Runtime = \"Python3.6\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/tencentcloudstack/pulumi-tencentcloud/sdk/go/tencentcloud/Scf\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := Scf.NewFunction(ctx, \"foo\", \u0026Scf.FunctionArgs{\n\t\t\tCfsConfigs: scf.FunctionCfsConfigArray{\n\t\t\t\t\u0026scf.FunctionCfsConfigArgs{\n\t\t\t\t\tCfsId: pulumi.String(\"cfs-xxxxxxxx\"),\n\t\t\t\t\tLocalMountDir: pulumi.String(\"/mnt\"),\n\t\t\t\t\tMountInsId: pulumi.String(\"cfs-xxxxxxxx\"),\n\t\t\t\t\tRemoteMountDir: pulumi.String(\"/\"),\n\t\t\t\t\tUserGroupId: pulumi.String(\"10000\"),\n\t\t\t\t\tUserId: pulumi.String(\"10000\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tHandler: pulumi.String(\"main.do_it\"),\n\t\t\tRuntime: pulumi.String(\"Python3.6\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.tencentcloud.Scf.Function;\nimport com.pulumi.tencentcloud.Scf.FunctionArgs;\nimport com.pulumi.tencentcloud.Scf.inputs.FunctionCfsConfigArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 Function(\"foo\", FunctionArgs.builder() \n .cfsConfigs(FunctionCfsConfigArgs.builder()\n .cfsId(\"cfs-xxxxxxxx\")\n .localMountDir(\"/mnt\")\n .mountInsId(\"cfs-xxxxxxxx\")\n .remoteMountDir(\"/\")\n .userGroupId(\"10000\")\n .userId(\"10000\")\n .build())\n .handler(\"main.do_it\")\n .runtime(\"Python3.6\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n foo:\n type: tencentcloud:Scf:Function\n properties:\n cfsConfigs:\n - cfsId: cfs-xxxxxxxx\n localMountDir: /mnt\n mountInsId: cfs-xxxxxxxx\n remoteMountDir: /\n userGroupId: '10000'\n userId: '10000'\n handler: main.do_it\n runtime: Python3.6\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Using triggers\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as tencentcloud from \"@tencentcloud_iac/pulumi\";\n\nconst foo = new tencentcloud.scf.Function(\"foo\", {\n handler: \"first.do_it_first\",\n runtime: \"Python3.6\",\n enablePublicNet: true,\n zipFile: \"/scf/first.zip\",\n triggers: [\n {\n name: \"tf-test-fn-trigger\",\n type: \"timer\",\n triggerDesc: \"*/5 * * * * * *\",\n },\n {\n name: \"scf-bucket-1308919341.cos.ap-guangzhou.myqcloud.com\",\n cosRegion: \"ap-guangzhou\",\n type: \"cos\",\n triggerDesc: \"{\\\"event\\\":\\\"cos:ObjectCreated:Put\\\",\\\"filter\\\":{\\\"Prefix\\\":\\\"\\\",\\\"Suffix\\\":\\\"\\\"}}\",\n },\n {\n name: \"tf-test-fn-trigger\",\n type: \"http\",\n triggerDesc: JSON.stringify({\n AuthType: \"NONE\",\n NetConfig: {\n EnableIntranet: true,\n EnableExtranet: false,\n },\n }),\n },\n ],\n});\n```\n```python\nimport pulumi\nimport json\nimport tencentcloud_iac_pulumi as tencentcloud\n\nfoo = tencentcloud.scf.Function(\"foo\",\n handler=\"first.do_it_first\",\n runtime=\"Python3.6\",\n enable_public_net=True,\n zip_file=\"/scf/first.zip\",\n triggers=[\n tencentcloud.scf.FunctionTriggerArgs(\n name=\"tf-test-fn-trigger\",\n type=\"timer\",\n trigger_desc=\"*/5 * * * * * *\",\n ),\n tencentcloud.scf.FunctionTriggerArgs(\n name=\"scf-bucket-1308919341.cos.ap-guangzhou.myqcloud.com\",\n cos_region=\"ap-guangzhou\",\n type=\"cos\",\n trigger_desc=\"{\\\"event\\\":\\\"cos:ObjectCreated:Put\\\",\\\"filter\\\":{\\\"Prefix\\\":\\\"\\\",\\\"Suffix\\\":\\\"\\\"}}\",\n ),\n tencentcloud.scf.FunctionTriggerArgs(\n name=\"tf-test-fn-trigger\",\n type=\"http\",\n trigger_desc=json.dumps({\n \"AuthType\": \"NONE\",\n \"NetConfig\": {\n \"EnableIntranet\": True,\n \"EnableExtranet\": False,\n },\n }),\n ),\n ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Text.Json;\nusing Pulumi;\nusing Tencentcloud = TencentCloudIAC.PulumiPackage.Tencentcloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var foo = new Tencentcloud.Scf.Function(\"foo\", new()\n {\n Handler = \"first.do_it_first\",\n Runtime = \"Python3.6\",\n EnablePublicNet = true,\n ZipFile = \"/scf/first.zip\",\n Triggers = new[]\n {\n new Tencentcloud.Scf.Inputs.FunctionTriggerArgs\n {\n Name = \"tf-test-fn-trigger\",\n Type = \"timer\",\n TriggerDesc = \"*/5 * * * * * *\",\n },\n new Tencentcloud.Scf.Inputs.FunctionTriggerArgs\n {\n Name = \"scf-bucket-1308919341.cos.ap-guangzhou.myqcloud.com\",\n CosRegion = \"ap-guangzhou\",\n Type = \"cos\",\n TriggerDesc = \"{\\\"event\\\":\\\"cos:ObjectCreated:Put\\\",\\\"filter\\\":{\\\"Prefix\\\":\\\"\\\",\\\"Suffix\\\":\\\"\\\"}}\",\n },\n new Tencentcloud.Scf.Inputs.FunctionTriggerArgs\n {\n Name = \"tf-test-fn-trigger\",\n Type = \"http\",\n TriggerDesc = JsonSerializer.Serialize(new Dictionary\u003cstring, object?\u003e\n {\n [\"AuthType\"] = \"NONE\",\n [\"NetConfig\"] = new Dictionary\u003cstring, object?\u003e\n {\n [\"EnableIntranet\"] = true,\n [\"EnableExtranet\"] = false,\n },\n }),\n },\n },\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"encoding/json\"\n\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/tencentcloudstack/pulumi-tencentcloud/sdk/go/tencentcloud/Scf\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\ttmpJSON0, err := json.Marshal(map[string]interface{}{\n\t\t\t\"AuthType\": \"NONE\",\n\t\t\t\"NetConfig\": map[string]interface{}{\n\t\t\t\t\"EnableIntranet\": true,\n\t\t\t\t\"EnableExtranet\": 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 = Scf.NewFunction(ctx, \"foo\", \u0026Scf.FunctionArgs{\n\t\t\tHandler: pulumi.String(\"first.do_it_first\"),\n\t\t\tRuntime: pulumi.String(\"Python3.6\"),\n\t\t\tEnablePublicNet: pulumi.Bool(true),\n\t\t\tZipFile: pulumi.String(\"/scf/first.zip\"),\n\t\t\tTriggers: scf.FunctionTriggerArray{\n\t\t\t\t\u0026scf.FunctionTriggerArgs{\n\t\t\t\t\tName: pulumi.String(\"tf-test-fn-trigger\"),\n\t\t\t\t\tType: pulumi.String(\"timer\"),\n\t\t\t\t\tTriggerDesc: pulumi.String(\"*/5 * * * * * *\"),\n\t\t\t\t},\n\t\t\t\t\u0026scf.FunctionTriggerArgs{\n\t\t\t\t\tName: pulumi.String(\"scf-bucket-1308919341.cos.ap-guangzhou.myqcloud.com\"),\n\t\t\t\t\tCosRegion: pulumi.String(\"ap-guangzhou\"),\n\t\t\t\t\tType: pulumi.String(\"cos\"),\n\t\t\t\t\tTriggerDesc: pulumi.String(\"{\\\"event\\\":\\\"cos:ObjectCreated:Put\\\",\\\"filter\\\":{\\\"Prefix\\\":\\\"\\\",\\\"Suffix\\\":\\\"\\\"}}\"),\n\t\t\t\t},\n\t\t\t\t\u0026scf.FunctionTriggerArgs{\n\t\t\t\t\tName: pulumi.String(\"tf-test-fn-trigger\"),\n\t\t\t\t\tType: pulumi.String(\"http\"),\n\t\t\t\t\tTriggerDesc: pulumi.String(json0),\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.tencentcloud.Scf.Function;\nimport com.pulumi.tencentcloud.Scf.FunctionArgs;\nimport com.pulumi.tencentcloud.Scf.inputs.FunctionTriggerArgs;\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 foo = new Function(\"foo\", FunctionArgs.builder() \n .handler(\"first.do_it_first\")\n .runtime(\"Python3.6\")\n .enablePublicNet(true)\n .zipFile(\"/scf/first.zip\")\n .triggers( \n FunctionTriggerArgs.builder()\n .name(\"tf-test-fn-trigger\")\n .type(\"timer\")\n .triggerDesc(\"*/5 * * * * * *\")\n .build(),\n FunctionTriggerArgs.builder()\n .name(\"scf-bucket-1308919341.cos.ap-guangzhou.myqcloud.com\")\n .cosRegion(\"ap-guangzhou\")\n .type(\"cos\")\n .triggerDesc(\"{\\\"event\\\":\\\"cos:ObjectCreated:Put\\\",\\\"filter\\\":{\\\"Prefix\\\":\\\"\\\",\\\"Suffix\\\":\\\"\\\"}}\")\n .build(),\n FunctionTriggerArgs.builder()\n .name(\"tf-test-fn-trigger\")\n .type(\"http\")\n .triggerDesc(serializeJson(\n jsonObject(\n jsonProperty(\"AuthType\", \"NONE\"),\n jsonProperty(\"NetConfig\", jsonObject(\n jsonProperty(\"EnableIntranet\", true),\n jsonProperty(\"EnableExtranet\", false)\n ))\n )))\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n foo:\n type: tencentcloud:Scf:Function\n properties:\n handler: first.do_it_first\n runtime: Python3.6\n enablePublicNet: true\n zipFile: /scf/first.zip\n triggers:\n - name: tf-test-fn-trigger\n type: timer\n triggerDesc: '*/5 * * * * * *'\n - name: scf-bucket-1308919341.cos.ap-guangzhou.myqcloud.com\n cosRegion: ap-guangzhou\n type: cos\n triggerDesc: '{\"event\":\"cos:ObjectCreated:Put\",\"filter\":{\"Prefix\":\"\",\"Suffix\":\"\"}}'\n - name: tf-test-fn-trigger\n type: http\n triggerDesc:\n fn::toJSON:\n AuthType: NONE\n NetConfig:\n EnableIntranet: true\n EnableExtranet: false\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nSCF function can be imported, e.g.\n\n-\u003e __NOTE:__ function id is `\u003cfunction namespace\u003e+\u003cfunction name\u003e`\n\n```sh\n$ pulumi import tencentcloud:Scf/function:Function test default+test\n```\n", "properties": { @@ -234347,8 +234886,12 @@ } }, "tencentcloud:Vpn/connection:Connection": { - "description": "Provides a resource to create a VPN connection.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as tencentcloud from \"@tencentcloud_iac/pulumi\";\n\nconst foo = new tencentcloud.vpn.Connection(\"foo\", {\n customerGatewayId: \"cgw-xfqag\",\n ikeDhGroupName: \"GROUP2\",\n ikeExchangeMode: \"AGGRESSIVE\",\n ikeLocalAddress: \"1.1.1.1\",\n ikeLocalIdentity: \"ADDRESS\",\n ikeProtoAuthenAlgorithm: \"SHA\",\n ikeProtoEncryAlgorithm: \"3DES-CBC\",\n ikeRemoteAddress: \"2.2.2.2\",\n ikeRemoteIdentity: \"ADDRESS\",\n ikeSaLifetimeSeconds: 86401,\n ipsecEncryptAlgorithm: \"3DES-CBC\",\n ipsecIntegrityAlgorithm: \"SHA1\",\n ipsecPfsDhGroup: \"NULL\",\n ipsecSaLifetimeSeconds: 7200,\n ipsecSaLifetimeTraffic: 2570,\n preShareKey: \"testt\",\n securityGroupPolicies: [{\n localCidrBlock: \"172.16.0.0/16\",\n remoteCidrBlocks: [\"2.2.2.0/26\"],\n }],\n tags: {\n test: \"testt\",\n },\n vpcId: \"vpc-dk8zmwuf\",\n vpnGatewayId: \"vpngw-8ccsnclt\",\n});\n```\n```python\nimport pulumi\nimport tencentcloud_iac_pulumi as tencentcloud\n\nfoo = tencentcloud.vpn.Connection(\"foo\",\n customer_gateway_id=\"cgw-xfqag\",\n ike_dh_group_name=\"GROUP2\",\n ike_exchange_mode=\"AGGRESSIVE\",\n ike_local_address=\"1.1.1.1\",\n ike_local_identity=\"ADDRESS\",\n ike_proto_authen_algorithm=\"SHA\",\n ike_proto_encry_algorithm=\"3DES-CBC\",\n ike_remote_address=\"2.2.2.2\",\n ike_remote_identity=\"ADDRESS\",\n ike_sa_lifetime_seconds=86401,\n ipsec_encrypt_algorithm=\"3DES-CBC\",\n ipsec_integrity_algorithm=\"SHA1\",\n ipsec_pfs_dh_group=\"NULL\",\n ipsec_sa_lifetime_seconds=7200,\n ipsec_sa_lifetime_traffic=2570,\n pre_share_key=\"testt\",\n security_group_policies=[tencentcloud.vpn.ConnectionSecurityGroupPolicyArgs(\n local_cidr_block=\"172.16.0.0/16\",\n remote_cidr_blocks=[\"2.2.2.0/26\"],\n )],\n tags={\n \"test\": \"testt\",\n },\n vpc_id=\"vpc-dk8zmwuf\",\n vpn_gateway_id=\"vpngw-8ccsnclt\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Tencentcloud = TencentCloudIAC.PulumiPackage.Tencentcloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var foo = new Tencentcloud.Vpn.Connection(\"foo\", new()\n {\n CustomerGatewayId = \"cgw-xfqag\",\n IkeDhGroupName = \"GROUP2\",\n IkeExchangeMode = \"AGGRESSIVE\",\n IkeLocalAddress = \"1.1.1.1\",\n IkeLocalIdentity = \"ADDRESS\",\n IkeProtoAuthenAlgorithm = \"SHA\",\n IkeProtoEncryAlgorithm = \"3DES-CBC\",\n IkeRemoteAddress = \"2.2.2.2\",\n IkeRemoteIdentity = \"ADDRESS\",\n IkeSaLifetimeSeconds = 86401,\n IpsecEncryptAlgorithm = \"3DES-CBC\",\n IpsecIntegrityAlgorithm = \"SHA1\",\n IpsecPfsDhGroup = \"NULL\",\n IpsecSaLifetimeSeconds = 7200,\n IpsecSaLifetimeTraffic = 2570,\n PreShareKey = \"testt\",\n SecurityGroupPolicies = new[]\n {\n new Tencentcloud.Vpn.Inputs.ConnectionSecurityGroupPolicyArgs\n {\n LocalCidrBlock = \"172.16.0.0/16\",\n RemoteCidrBlocks = new[]\n {\n \"2.2.2.0/26\",\n },\n },\n },\n Tags = \n {\n { \"test\", \"testt\" },\n },\n VpcId = \"vpc-dk8zmwuf\",\n VpnGatewayId = \"vpngw-8ccsnclt\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/tencentcloudstack/pulumi-tencentcloud/sdk/go/tencentcloud/Vpn\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := Vpn.NewConnection(ctx, \"foo\", \u0026Vpn.ConnectionArgs{\n\t\t\tCustomerGatewayId: pulumi.String(\"cgw-xfqag\"),\n\t\t\tIkeDhGroupName: pulumi.String(\"GROUP2\"),\n\t\t\tIkeExchangeMode: pulumi.String(\"AGGRESSIVE\"),\n\t\t\tIkeLocalAddress: pulumi.String(\"1.1.1.1\"),\n\t\t\tIkeLocalIdentity: pulumi.String(\"ADDRESS\"),\n\t\t\tIkeProtoAuthenAlgorithm: pulumi.String(\"SHA\"),\n\t\t\tIkeProtoEncryAlgorithm: pulumi.String(\"3DES-CBC\"),\n\t\t\tIkeRemoteAddress: pulumi.String(\"2.2.2.2\"),\n\t\t\tIkeRemoteIdentity: pulumi.String(\"ADDRESS\"),\n\t\t\tIkeSaLifetimeSeconds: pulumi.Int(86401),\n\t\t\tIpsecEncryptAlgorithm: pulumi.String(\"3DES-CBC\"),\n\t\t\tIpsecIntegrityAlgorithm: pulumi.String(\"SHA1\"),\n\t\t\tIpsecPfsDhGroup: pulumi.String(\"NULL\"),\n\t\t\tIpsecSaLifetimeSeconds: pulumi.Int(7200),\n\t\t\tIpsecSaLifetimeTraffic: pulumi.Int(2570),\n\t\t\tPreShareKey: pulumi.String(\"testt\"),\n\t\t\tSecurityGroupPolicies: vpn.ConnectionSecurityGroupPolicyArray{\n\t\t\t\t\u0026vpn.ConnectionSecurityGroupPolicyArgs{\n\t\t\t\t\tLocalCidrBlock: pulumi.String(\"172.16.0.0/16\"),\n\t\t\t\t\tRemoteCidrBlocks: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"2.2.2.0/26\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tTags: pulumi.Map{\n\t\t\t\t\"test\": pulumi.Any(\"testt\"),\n\t\t\t},\n\t\t\tVpcId: pulumi.String(\"vpc-dk8zmwuf\"),\n\t\t\tVpnGatewayId: pulumi.String(\"vpngw-8ccsnclt\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.tencentcloud.Vpn.Connection;\nimport com.pulumi.tencentcloud.Vpn.ConnectionArgs;\nimport com.pulumi.tencentcloud.Vpn.inputs.ConnectionSecurityGroupPolicyArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 Connection(\"foo\", ConnectionArgs.builder() \n .customerGatewayId(\"cgw-xfqag\")\n .ikeDhGroupName(\"GROUP2\")\n .ikeExchangeMode(\"AGGRESSIVE\")\n .ikeLocalAddress(\"1.1.1.1\")\n .ikeLocalIdentity(\"ADDRESS\")\n .ikeProtoAuthenAlgorithm(\"SHA\")\n .ikeProtoEncryAlgorithm(\"3DES-CBC\")\n .ikeRemoteAddress(\"2.2.2.2\")\n .ikeRemoteIdentity(\"ADDRESS\")\n .ikeSaLifetimeSeconds(86401)\n .ipsecEncryptAlgorithm(\"3DES-CBC\")\n .ipsecIntegrityAlgorithm(\"SHA1\")\n .ipsecPfsDhGroup(\"NULL\")\n .ipsecSaLifetimeSeconds(7200)\n .ipsecSaLifetimeTraffic(2570)\n .preShareKey(\"testt\")\n .securityGroupPolicies(ConnectionSecurityGroupPolicyArgs.builder()\n .localCidrBlock(\"172.16.0.0/16\")\n .remoteCidrBlocks(\"2.2.2.0/26\")\n .build())\n .tags(Map.of(\"test\", \"testt\"))\n .vpcId(\"vpc-dk8zmwuf\")\n .vpnGatewayId(\"vpngw-8ccsnclt\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n foo:\n type: tencentcloud:Vpn:Connection\n properties:\n customerGatewayId: cgw-xfqag\n ikeDhGroupName: GROUP2\n ikeExchangeMode: AGGRESSIVE\n ikeLocalAddress: 1.1.1.1\n ikeLocalIdentity: ADDRESS\n ikeProtoAuthenAlgorithm: SHA\n ikeProtoEncryAlgorithm: 3DES-CBC\n ikeRemoteAddress: 2.2.2.2\n ikeRemoteIdentity: ADDRESS\n ikeSaLifetimeSeconds: 86401\n ipsecEncryptAlgorithm: 3DES-CBC\n ipsecIntegrityAlgorithm: SHA1\n ipsecPfsDhGroup: NULL\n ipsecSaLifetimeSeconds: 7200\n ipsecSaLifetimeTraffic: 2570\n preShareKey: testt\n securityGroupPolicies:\n - localCidrBlock: 172.16.0.0/16\n remoteCidrBlocks:\n - 2.2.2.0/26\n tags:\n test: testt\n vpcId: vpc-dk8zmwuf\n vpnGatewayId: vpngw-8ccsnclt\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nVPN connection can be imported using the id, e.g.\n\n```sh\n$ pulumi import tencentcloud:Vpn/connection:Connection foo vpnx-nadifg3s\n```\n", + "description": "Provides a resource to create a VPN connection.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as tencentcloud from \"@tencentcloud_iac/pulumi\";\n\nconst example = new tencentcloud.vpn.Connection(\"example\", {\n customerGatewayId: \"cgw-e503id2z\",\n enableHealthCheck: true,\n healthCheckConfig: {\n probeInterval: 5000,\n probeThreshold: 3,\n probeTimeout: 150,\n probeType: \"NQA\",\n },\n healthCheckLocalIp: \"169.254.227.187\",\n healthCheckRemoteIp: \"169.254.164.37\",\n ikeDhGroupName: \"GROUP2\",\n ikeExchangeMode: \"AGGRESSIVE\",\n ikeLocalAddress: \"159.75.204.38\",\n ikeLocalIdentity: \"ADDRESS\",\n ikeProtoAuthenAlgorithm: \"SHA\",\n ikeProtoEncryAlgorithm: \"3DES-CBC\",\n ikeRemoteAddress: \"109.244.60.154\",\n ikeRemoteIdentity: \"ADDRESS\",\n ikeSaLifetimeSeconds: 86400,\n ipsecEncryptAlgorithm: \"3DES-CBC\",\n ipsecIntegrityAlgorithm: \"SHA1\",\n ipsecPfsDhGroup: \"NULL\",\n ipsecSaLifetimeSeconds: 14400,\n ipsecSaLifetimeTraffic: 4096000000,\n negotiationType: \"flowTrigger\",\n preShareKey: \"your_pre_share_key\",\n routeType: \"StaticRoute\",\n securityGroupPolicies: [{\n localCidrBlock: \"172.16.0.0/16\",\n remoteCidrBlocks: [\"2.2.2.0/26\"],\n }],\n tags: {\n createBy: \"Terraform\",\n },\n vpcId: \"vpc-6ccw0s5l\",\n vpnGatewayId: \"vpngw-33p5vnwd\",\n});\n```\n```python\nimport pulumi\nimport tencentcloud_iac_pulumi as tencentcloud\n\nexample = tencentcloud.vpn.Connection(\"example\",\n customer_gateway_id=\"cgw-e503id2z\",\n enable_health_check=True,\n health_check_config=tencentcloud.vpn.ConnectionHealthCheckConfigArgs(\n probe_interval=5000,\n probe_threshold=3,\n probe_timeout=150,\n probe_type=\"NQA\",\n ),\n health_check_local_ip=\"169.254.227.187\",\n health_check_remote_ip=\"169.254.164.37\",\n ike_dh_group_name=\"GROUP2\",\n ike_exchange_mode=\"AGGRESSIVE\",\n ike_local_address=\"159.75.204.38\",\n ike_local_identity=\"ADDRESS\",\n ike_proto_authen_algorithm=\"SHA\",\n ike_proto_encry_algorithm=\"3DES-CBC\",\n ike_remote_address=\"109.244.60.154\",\n ike_remote_identity=\"ADDRESS\",\n ike_sa_lifetime_seconds=86400,\n ipsec_encrypt_algorithm=\"3DES-CBC\",\n ipsec_integrity_algorithm=\"SHA1\",\n ipsec_pfs_dh_group=\"NULL\",\n ipsec_sa_lifetime_seconds=14400,\n ipsec_sa_lifetime_traffic=4096000000,\n negotiation_type=\"flowTrigger\",\n pre_share_key=\"your_pre_share_key\",\n route_type=\"StaticRoute\",\n security_group_policies=[tencentcloud.vpn.ConnectionSecurityGroupPolicyArgs(\n local_cidr_block=\"172.16.0.0/16\",\n remote_cidr_blocks=[\"2.2.2.0/26\"],\n )],\n tags={\n \"createBy\": \"Terraform\",\n },\n vpc_id=\"vpc-6ccw0s5l\",\n vpn_gateway_id=\"vpngw-33p5vnwd\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Tencentcloud = TencentCloudIAC.PulumiPackage.Tencentcloud;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var example = new Tencentcloud.Vpn.Connection(\"example\", new()\n {\n CustomerGatewayId = \"cgw-e503id2z\",\n EnableHealthCheck = true,\n HealthCheckConfig = new Tencentcloud.Vpn.Inputs.ConnectionHealthCheckConfigArgs\n {\n ProbeInterval = 5000,\n ProbeThreshold = 3,\n ProbeTimeout = 150,\n ProbeType = \"NQA\",\n },\n HealthCheckLocalIp = \"169.254.227.187\",\n HealthCheckRemoteIp = \"169.254.164.37\",\n IkeDhGroupName = \"GROUP2\",\n IkeExchangeMode = \"AGGRESSIVE\",\n IkeLocalAddress = \"159.75.204.38\",\n IkeLocalIdentity = \"ADDRESS\",\n IkeProtoAuthenAlgorithm = \"SHA\",\n IkeProtoEncryAlgorithm = \"3DES-CBC\",\n IkeRemoteAddress = \"109.244.60.154\",\n IkeRemoteIdentity = \"ADDRESS\",\n IkeSaLifetimeSeconds = 86400,\n IpsecEncryptAlgorithm = \"3DES-CBC\",\n IpsecIntegrityAlgorithm = \"SHA1\",\n IpsecPfsDhGroup = \"NULL\",\n IpsecSaLifetimeSeconds = 14400,\n IpsecSaLifetimeTraffic = 4096000000,\n NegotiationType = \"flowTrigger\",\n PreShareKey = \"your_pre_share_key\",\n RouteType = \"StaticRoute\",\n SecurityGroupPolicies = new[]\n {\n new Tencentcloud.Vpn.Inputs.ConnectionSecurityGroupPolicyArgs\n {\n LocalCidrBlock = \"172.16.0.0/16\",\n RemoteCidrBlocks = new[]\n {\n \"2.2.2.0/26\",\n },\n },\n },\n Tags = \n {\n { \"createBy\", \"Terraform\" },\n },\n VpcId = \"vpc-6ccw0s5l\",\n VpnGatewayId = \"vpngw-33p5vnwd\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/tencentcloudstack/pulumi-tencentcloud/sdk/go/tencentcloud/Vpn\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := Vpn.NewConnection(ctx, \"example\", \u0026Vpn.ConnectionArgs{\n\t\t\tCustomerGatewayId: pulumi.String(\"cgw-e503id2z\"),\n\t\t\tEnableHealthCheck: pulumi.Bool(true),\n\t\t\tHealthCheckConfig: \u0026vpn.ConnectionHealthCheckConfigArgs{\n\t\t\t\tProbeInterval: pulumi.Int(5000),\n\t\t\t\tProbeThreshold: pulumi.Int(3),\n\t\t\t\tProbeTimeout: pulumi.Int(150),\n\t\t\t\tProbeType: pulumi.String(\"NQA\"),\n\t\t\t},\n\t\t\tHealthCheckLocalIp: pulumi.String(\"169.254.227.187\"),\n\t\t\tHealthCheckRemoteIp: pulumi.String(\"169.254.164.37\"),\n\t\t\tIkeDhGroupName: pulumi.String(\"GROUP2\"),\n\t\t\tIkeExchangeMode: pulumi.String(\"AGGRESSIVE\"),\n\t\t\tIkeLocalAddress: pulumi.String(\"159.75.204.38\"),\n\t\t\tIkeLocalIdentity: pulumi.String(\"ADDRESS\"),\n\t\t\tIkeProtoAuthenAlgorithm: pulumi.String(\"SHA\"),\n\t\t\tIkeProtoEncryAlgorithm: pulumi.String(\"3DES-CBC\"),\n\t\t\tIkeRemoteAddress: pulumi.String(\"109.244.60.154\"),\n\t\t\tIkeRemoteIdentity: pulumi.String(\"ADDRESS\"),\n\t\t\tIkeSaLifetimeSeconds: pulumi.Int(86400),\n\t\t\tIpsecEncryptAlgorithm: pulumi.String(\"3DES-CBC\"),\n\t\t\tIpsecIntegrityAlgorithm: pulumi.String(\"SHA1\"),\n\t\t\tIpsecPfsDhGroup: pulumi.String(\"NULL\"),\n\t\t\tIpsecSaLifetimeSeconds: pulumi.Int(14400),\n\t\t\tIpsecSaLifetimeTraffic: pulumi.Int(4096000000),\n\t\t\tNegotiationType: pulumi.String(\"flowTrigger\"),\n\t\t\tPreShareKey: pulumi.String(\"your_pre_share_key\"),\n\t\t\tRouteType: pulumi.String(\"StaticRoute\"),\n\t\t\tSecurityGroupPolicies: vpn.ConnectionSecurityGroupPolicyArray{\n\t\t\t\t\u0026vpn.ConnectionSecurityGroupPolicyArgs{\n\t\t\t\t\tLocalCidrBlock: pulumi.String(\"172.16.0.0/16\"),\n\t\t\t\t\tRemoteCidrBlocks: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"2.2.2.0/26\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tTags: pulumi.Map{\n\t\t\t\t\"createBy\": pulumi.Any(\"Terraform\"),\n\t\t\t},\n\t\t\tVpcId: pulumi.String(\"vpc-6ccw0s5l\"),\n\t\t\tVpnGatewayId: pulumi.String(\"vpngw-33p5vnwd\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.tencentcloud.Vpn.Connection;\nimport com.pulumi.tencentcloud.Vpn.ConnectionArgs;\nimport com.pulumi.tencentcloud.Vpn.inputs.ConnectionHealthCheckConfigArgs;\nimport com.pulumi.tencentcloud.Vpn.inputs.ConnectionSecurityGroupPolicyArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic 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 Connection(\"example\", ConnectionArgs.builder() \n .customerGatewayId(\"cgw-e503id2z\")\n .enableHealthCheck(true)\n .healthCheckConfig(ConnectionHealthCheckConfigArgs.builder()\n .probeInterval(5000)\n .probeThreshold(3)\n .probeTimeout(150)\n .probeType(\"NQA\")\n .build())\n .healthCheckLocalIp(\"169.254.227.187\")\n .healthCheckRemoteIp(\"169.254.164.37\")\n .ikeDhGroupName(\"GROUP2\")\n .ikeExchangeMode(\"AGGRESSIVE\")\n .ikeLocalAddress(\"159.75.204.38\")\n .ikeLocalIdentity(\"ADDRESS\")\n .ikeProtoAuthenAlgorithm(\"SHA\")\n .ikeProtoEncryAlgorithm(\"3DES-CBC\")\n .ikeRemoteAddress(\"109.244.60.154\")\n .ikeRemoteIdentity(\"ADDRESS\")\n .ikeSaLifetimeSeconds(86400)\n .ipsecEncryptAlgorithm(\"3DES-CBC\")\n .ipsecIntegrityAlgorithm(\"SHA1\")\n .ipsecPfsDhGroup(\"NULL\")\n .ipsecSaLifetimeSeconds(14400)\n .ipsecSaLifetimeTraffic(4096000000)\n .negotiationType(\"flowTrigger\")\n .preShareKey(\"your_pre_share_key\")\n .routeType(\"StaticRoute\")\n .securityGroupPolicies(ConnectionSecurityGroupPolicyArgs.builder()\n .localCidrBlock(\"172.16.0.0/16\")\n .remoteCidrBlocks(\"2.2.2.0/26\")\n .build())\n .tags(Map.of(\"createBy\", \"Terraform\"))\n .vpcId(\"vpc-6ccw0s5l\")\n .vpnGatewayId(\"vpngw-33p5vnwd\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n example:\n type: tencentcloud:Vpn:Connection\n properties:\n customerGatewayId: cgw-e503id2z\n # health check setting\n enableHealthCheck: true\n healthCheckConfig:\n probeInterval: 5000\n probeThreshold: 3\n probeTimeout: 150\n probeType: NQA\n healthCheckLocalIp: 169.254.227.187\n healthCheckRemoteIp: 169.254.164.37\n ikeDhGroupName: GROUP2\n ikeExchangeMode: AGGRESSIVE\n ikeLocalAddress: 159.75.204.38\n ikeLocalIdentity: ADDRESS\n ikeProtoAuthenAlgorithm: SHA\n # IKE setting\n ikeProtoEncryAlgorithm: 3DES-CBC\n ikeRemoteAddress: 109.244.60.154\n ikeRemoteIdentity: ADDRESS\n ikeSaLifetimeSeconds: 86400\n # IPSEC setting\n ipsecEncryptAlgorithm: 3DES-CBC\n ipsecIntegrityAlgorithm: SHA1\n ipsecPfsDhGroup: NULL\n ipsecSaLifetimeSeconds: 14400\n ipsecSaLifetimeTraffic: 4.096e+09\n negotiationType: flowTrigger\n preShareKey: your_pre_share_key\n routeType: StaticRoute\n securityGroupPolicies:\n - localCidrBlock: 172.16.0.0/16\n remoteCidrBlocks:\n - 2.2.2.0/26\n tags:\n createBy: Terraform\n vpcId: vpc-6ccw0s5l\n vpnGatewayId: vpngw-33p5vnwd\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nVPN connection can be imported using the id, e.g.\n\n```sh\n$ pulumi import tencentcloud:Vpn/connection:Connection foo vpnx-nadifg3s\n```\n", "properties": { + "bgpConfig": { + "$ref": "#/types/tencentcloud:Vpn/ConnectionBgpConfig:ConnectionBgpConfig", + "description": "BGP config.\n" + }, "createTime": { "type": "string", "description": "Create time of the VPN connection.\n" @@ -234377,6 +234920,10 @@ "type": "string", "description": "Encrypt proto of the VPN connection.\n" }, + "healthCheckConfig": { + "$ref": "#/types/tencentcloud:Vpn/ConnectionHealthCheckConfig:ConnectionHealthCheckConfig", + "description": "VPN channel health check configuration.\n" + }, "healthCheckLocalIp": { "type": "string", "description": "Health check the address of this terminal.\n" @@ -234461,6 +235008,10 @@ "type": "string", "description": "Name of the VPN connection. The length of character is limited to 1-60.\n" }, + "negotiationType": { + "type": "string", + "description": "The default negotiation type is `active`. Optional values: `active` (active negotiation), `passive` (passive negotiation), `flowTrigger` (traffic negotiation).\n" + }, "netStatus": { "type": "string", "description": "Net status of the VPN connection. Valid value: `AVAILABLE`.\n" @@ -234471,7 +235022,7 @@ }, "routeType": { "type": "string", - "description": "Route type of the VPN connection. Valid value: `STATIC`, `StaticRoute`, `Policy`.\n" + "description": "Route type of the VPN connection. Valid value: `STATIC`, `StaticRoute`, `Policy`, `Bgp`.\n" }, "securityGroupPolicies": { "type": "array", @@ -234505,6 +235056,7 @@ } }, "required": [ + "bgpConfig", "createTime", "customerGatewayId", "dpdAction", @@ -234512,12 +235064,14 @@ "dpdTimeout", "enableHealthCheck", "encryptProto", + "healthCheckConfig", "healthCheckLocalIp", "healthCheckRemoteIp", "ikeLocalFqdnName", "ikeRemoteFqdnName", "isCcnType", "name", + "negotiationType", "netStatus", "preShareKey", "routeType", @@ -234526,6 +235080,11 @@ "vpnProto" ], "inputProperties": { + "bgpConfig": { + "$ref": "#/types/tencentcloud:Vpn/ConnectionBgpConfig:ConnectionBgpConfig", + "description": "BGP config.\n", + "willReplaceOnChanges": true + }, "customerGatewayId": { "type": "string", "description": "ID of the customer gateway.\n", @@ -234547,6 +235106,10 @@ "type": "boolean", "description": "Whether intra-tunnel health checks are supported.\n" }, + "healthCheckConfig": { + "$ref": "#/types/tencentcloud:Vpn/ConnectionHealthCheckConfig:ConnectionHealthCheckConfig", + "description": "VPN channel health check configuration.\n" + }, "healthCheckLocalIp": { "type": "string", "description": "Health check the address of this terminal.\n" @@ -234627,13 +235190,17 @@ "type": "string", "description": "Name of the VPN connection. The length of character is limited to 1-60.\n" }, + "negotiationType": { + "type": "string", + "description": "The default negotiation type is `active`. Optional values: `active` (active negotiation), `passive` (passive negotiation), `flowTrigger` (traffic negotiation).\n" + }, "preShareKey": { "type": "string", "description": "Pre-shared key of the VPN connection.\n" }, "routeType": { "type": "string", - "description": "Route type of the VPN connection. Valid value: `STATIC`, `StaticRoute`, `Policy`.\n", + "description": "Route type of the VPN connection. Valid value: `STATIC`, `StaticRoute`, `Policy`, `Bgp`.\n", "willReplaceOnChanges": true }, "securityGroupPolicies": { @@ -234669,6 +235236,11 @@ "stateInputs": { "description": "Input properties used for looking up and filtering Connection resources.\n", "properties": { + "bgpConfig": { + "$ref": "#/types/tencentcloud:Vpn/ConnectionBgpConfig:ConnectionBgpConfig", + "description": "BGP config.\n", + "willReplaceOnChanges": true + }, "createTime": { "type": "string", "description": "Create time of the VPN connection.\n" @@ -234698,6 +235270,10 @@ "type": "string", "description": "Encrypt proto of the VPN connection.\n" }, + "healthCheckConfig": { + "$ref": "#/types/tencentcloud:Vpn/ConnectionHealthCheckConfig:ConnectionHealthCheckConfig", + "description": "VPN channel health check configuration.\n" + }, "healthCheckLocalIp": { "type": "string", "description": "Health check the address of this terminal.\n" @@ -234782,6 +235358,10 @@ "type": "string", "description": "Name of the VPN connection. The length of character is limited to 1-60.\n" }, + "negotiationType": { + "type": "string", + "description": "The default negotiation type is `active`. Optional values: `active` (active negotiation), `passive` (passive negotiation), `flowTrigger` (traffic negotiation).\n" + }, "netStatus": { "type": "string", "description": "Net status of the VPN connection. Valid value: `AVAILABLE`.\n" @@ -234792,7 +235372,7 @@ }, "routeType": { "type": "string", - "description": "Route type of the VPN connection. Valid value: `STATIC`, `StaticRoute`, `Policy`.\n", + "description": "Route type of the VPN connection. Valid value: `STATIC`, `StaticRoute`, `Policy`, `Bgp`.\n", "willReplaceOnChanges": true }, "securityGroupPolicies": { diff --git a/provider/go.mod b/provider/go.mod index aecf40281..58f55ef86 100644 --- a/provider/go.mod +++ b/provider/go.mod @@ -6,7 +6,7 @@ replace github.com/hashicorp/terraform-plugin-sdk/v2 => github.com/pulumi/terraf require ( github.com/pulumi/pulumi-terraform-bridge/v3 v3.80.0 - github.com/tencentcloudstack/terraform-provider-tencentcloud v1.81.142 + github.com/tencentcloudstack/terraform-provider-tencentcloud v1.81.144 ) require ( @@ -212,7 +212,7 @@ require ( github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/api v1.0.285 // indirect github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/apigateway v1.0.763 // indirect github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/apm v1.0.825 // indirect - github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/as v1.0.1033 // indirect + github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/as v1.0.1050 // indirect github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/bi v1.0.824 // indirect github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cam v1.0.760 // indirect github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cat v1.0.825 // indirect @@ -230,8 +230,8 @@ require ( github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/ckafka v1.0.748 // indirect github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/clb v1.0.1034 // indirect github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cloudaudit v1.0.1033 // indirect - github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cls v1.0.970 // indirect - github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.1045 // indirect + github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cls v1.0.1046 // indirect + github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.1050 // indirect github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/controlcenter v1.0.993 // indirect github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/csip v1.0.860 // indirect github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cvm v1.0.1014 // indirect diff --git a/provider/go.sum b/provider/go.sum index c07738270..5c5c0173c 100644 --- a/provider/go.sum +++ b/provider/go.sum @@ -2970,8 +2970,8 @@ github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/apigateway v1.0.763 h1: github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/apigateway v1.0.763/go.mod h1:OlRreot089Ec7bEYMUovUBSuCD/x0D0ONPZ0g3YA5hg= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/apm v1.0.825 h1:yiC2lsZ3nNsZ/6Vm7FKFEkAJ37sqzIfmdL7DY0LouMc= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/apm v1.0.825/go.mod h1:6qtSa8OZKwJOWoOCYWVZd6+T62O96AxbPll0I43d4yw= -github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/as v1.0.1033 h1:f39voqCh8s061EQojp1QHZSq+QbjrmOkz4LeVFA47r0= -github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/as v1.0.1033/go.mod h1:PzOW1D/Lzd4sUW3xlT+4oXp+6MLCN55J+V/W9q1acro= +github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/as v1.0.1050 h1:uLV7suHZzLYQ7FzzPotAxHp8U2Cyu79Q9+DjHfGBS1o= +github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/as v1.0.1050/go.mod h1:z8L5Brgaqaq9DK0p8wzOB+6alOD/qWABzkCFmitewAE= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/bi v1.0.824 h1:DVKvZ6h+qd7tadUrCjVAkCCmE3TsbK2ZmwGd3AJcpWc= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/bi v1.0.824/go.mod h1:DvBpDX/qdJG4KKLeULmRvhAjPYiw8za0HeTSu2y/lFw= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cam v1.0.760 h1:Ky9dRsTL2HXKWUrTFpQFZWQ1TrM+o+P35kczR7thalo= @@ -3006,8 +3006,8 @@ github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/clb v1.0.1034 h1:nZBr0e github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/clb v1.0.1034/go.mod h1:q8fxlV0OQPmG3Zqq4f06m+EOqfU8BvZPnVsPCkCdv6E= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cloudaudit v1.0.1033 h1:dIr+MVsZeUBiKZELfJh5HRJdI+BI6lCp5pv/2oXekuk= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cloudaudit v1.0.1033/go.mod h1:7oFlNimGSTHFy6JV7W/IZKuJWr+NUjCnGLTvb9MWNrY= -github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cls v1.0.970 h1:PfyFPicGDDDc23id+sXh5vF0sbFpCPulzgLhqqVdp9M= -github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cls v1.0.970/go.mod h1:VVMyTwJWyP+XVS9OK1y4tJV4XMXZgnKHl+Fg8r0Jf1Q= +github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cls v1.0.1046 h1:SgWglnqN+BnWZcIdWvgKoubxGXR0Q9hjQcHRjPzA5dw= +github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/cls v1.0.1046/go.mod h1:jIc15EkToFSyRnewkLQKgln+OLOJeckLK2TskLvWK24= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.414/go.mod h1:7sCQWVkxcsR38nffDW057DRGk8mUjK1Ing/EFOK8s8Y= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.486/go.mod h1:7sCQWVkxcsR38nffDW057DRGk8mUjK1Ing/EFOK8s8Y= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.524/go.mod h1:7sCQWVkxcsR38nffDW057DRGk8mUjK1Ing/EFOK8s8Y= @@ -3069,8 +3069,10 @@ github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.1033/go.mod github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.1034/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.1037/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.1038/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0= -github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.1045 h1:3vvovAezER+/2FycWT4Wplkis3y3OHsRg2mDfcv08MI= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.1045/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0= +github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.1046/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0= +github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.1050 h1:SnzAe4ntwwrUf0jzgxE5Qm7wH8atRwvaDT+njfNExJ4= +github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common v1.0.1050/go.mod h1:r5r4xbfxSaeR04b166HGsBa/R4U3SueirEUpXGuw+Q0= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/controlcenter v1.0.993 h1:WlPgXldQCxt7qi5Xrc6j6zTrsXWzN5BcOGs7Irq7fwQ= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/controlcenter v1.0.993/go.mod h1:Z9U8zNtyuyKhjS0698wqsrG/kLx1TQ5CEixXBwVe7xY= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/csip v1.0.860 h1:F3esKBIT3HW9+7Gt8cVgf8X06VdGIczpgLBUECzSEzU= @@ -3191,8 +3193,8 @@ github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/wedata v1.0.792 h1:NLgK github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/wedata v1.0.792/go.mod h1:Xz6vPV3gHlzPwtEcmWdWO1EUXJDgn2p7UMCXbJiVioQ= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/wss v1.0.199 h1:hMBLtiJPnZ9GvA677cTB6ELBR6B68wCR2QY1sNoGQc4= github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/wss v1.0.199/go.mod h1:nnY91/H3j/Gu7V/oCA6Zeg8T5D3q36EUdBh4EjmHwqY= -github.com/tencentcloudstack/terraform-provider-tencentcloud v1.81.142 h1:d6ij1ugTi1Xt0C5eEA34YHrLaasI3KItEbZLBjHgA3k= -github.com/tencentcloudstack/terraform-provider-tencentcloud v1.81.142/go.mod h1:3fnjDcpFjMs3Zlt/q+Zis5u6a5pu61K8ONtVhYVoNUI= +github.com/tencentcloudstack/terraform-provider-tencentcloud v1.81.144 h1:4ueS+zhzfMa/fXcUIMrFnoPNhsffm1unovauKTb7zhQ= +github.com/tencentcloudstack/terraform-provider-tencentcloud v1.81.144/go.mod h1:aKbCXNaWNw/ONztD/sJJpo3EWknzXO6tRouxbIP/FSc= github.com/tencentyun/cos-go-sdk-v5 v0.7.42-0.20230629101357-7edd77448a0f h1:yTMDoBvFuXjZat10d98DIKbPnN9FQG+drt1SbNfMW5U= github.com/tencentyun/cos-go-sdk-v5 v0.7.42-0.20230629101357-7edd77448a0f/go.mod h1:LUFnaqRmGk6pEHOaRmdn2dCZR2j0cSsM5xowWFPTPao= github.com/texttheater/golang-levenshtein v1.0.1 h1:+cRNoVrfiwufQPhoMzB6N0Yf/Mqajr6t1lOv8GyGE2U= diff --git a/sdk/dotnet/Tencentcloud/As/ScalingConfig.cs b/sdk/dotnet/Tencentcloud/As/ScalingConfig.cs index b8d520a86..03648d1f1 100644 --- a/sdk/dotnet/Tencentcloud/As/ScalingConfig.cs +++ b/sdk/dotnet/Tencentcloud/As/ScalingConfig.cs @@ -17,6 +17,8 @@ namespace TencentCloudIAC.PulumiPackage.Tencentcloud.As /// /// ## Example Usage /// + /// ### Create a normal configuration + /// /// <!--Start PulumiCodeChooser --> /// ```csharp /// using System.Collections.Generic; @@ -33,16 +35,16 @@ namespace TencentCloudIAC.PulumiPackage.Tencentcloud.As /// { /// "PUBLIC_IMAGE", /// }, - /// OsName = "TencentOS Server 3.2 (Final)", + /// OsName = "TencentOS Server 4 for x86_64", /// }); /// /// var exampleScalingConfig = new Tencentcloud.As.ScalingConfig("exampleScalingConfig", new() /// { - /// ConfigurationName = "example-launch-configuration", + /// ConfigurationName = "tf-example", /// ImageId = exampleInstance.Apply(getInstanceResult => getInstanceResult.Images[0]?.ImageId), /// InstanceTypes = new[] /// { - /// "SA1.SMALL1", + /// "SA5.MEDIUM4", /// }, /// ProjectId = 0, /// SystemDiskType = "CLOUD_PREMIUM", @@ -65,7 +67,7 @@ namespace TencentCloudIAC.PulumiPackage.Tencentcloud.As /// UserData = "dGVzdA==", /// HostNameSettings = new Tencentcloud.As.Inputs.ScalingConfigHostNameSettingsArgs /// { - /// HostName = "host-name-test", + /// HostName = "host-name", /// HostNameStyle = "UNIQUE", /// }, /// InstanceTags = @@ -96,16 +98,16 @@ namespace TencentCloudIAC.PulumiPackage.Tencentcloud.As /// { /// "PUBLIC_IMAGE", /// }, - /// OsName = "TencentOS Server 3.2 (Final)", + /// OsName = "TencentOS Server 4 for x86_64", /// }); /// /// var exampleScalingConfig = new Tencentcloud.As.ScalingConfig("exampleScalingConfig", new() /// { - /// ConfigurationName = "launch-configuration", + /// ConfigurationName = "tf-example", /// ImageId = exampleInstance.Apply(getInstanceResult => getInstanceResult.Images[0]?.ImageId), /// InstanceTypes = new[] /// { - /// "SA1.SMALL1", + /// "SA5.MEDIUM4", /// }, /// InstanceChargeType = "SPOTPAID", /// SpotInstanceType = "one-time", @@ -157,6 +159,71 @@ namespace TencentCloudIAC.PulumiPackage.Tencentcloud.As /// ``` /// <!--End PulumiCodeChooser --> /// + /// ### Create a CDC configuration + /// + /// <!--Start PulumiCodeChooser --> + /// ```csharp + /// using System.Collections.Generic; + /// using System.Linq; + /// using Pulumi; + /// using Tencentcloud = Pulumi.Tencentcloud; + /// using Tencentcloud = TencentCloudIAC.PulumiPackage.Tencentcloud; + /// + /// return await Deployment.RunAsync(() => + /// { + /// var exampleInstance = Tencentcloud.Images.GetInstance.Invoke(new() + /// { + /// ImageTypes = new[] + /// { + /// "PUBLIC_IMAGE", + /// }, + /// OsName = "TencentOS Server 4 for x86_64", + /// }); + /// + /// var exampleScalingConfig = new Tencentcloud.As.ScalingConfig("exampleScalingConfig", new() + /// { + /// ConfigurationName = "tf-example", + /// ImageId = exampleInstance.Apply(getInstanceResult => getInstanceResult.Images[0]?.ImageId), + /// InstanceTypes = new[] + /// { + /// "SA5.MEDIUM4", + /// }, + /// ProjectId = 0, + /// SystemDiskType = "CLOUD_PREMIUM", + /// SystemDiskSize = 50, + /// InstanceChargeType = "CDCPAID", + /// DedicatedClusterId = "cluster-262n63e8", + /// DataDisks = new[] + /// { + /// new Tencentcloud.As.Inputs.ScalingConfigDataDiskArgs + /// { + /// DiskType = "CLOUD_PREMIUM", + /// DiskSize = 50, + /// }, + /// }, + /// InternetChargeType = "TRAFFIC_POSTPAID_BY_HOUR", + /// InternetMaxBandwidthOut = 10, + /// PublicIpAssigned = true, + /// Password = "Test@123#", + /// EnhancedSecurityService = false, + /// EnhancedMonitorService = false, + /// EnhancedAutomationToolsService = false, + /// UserData = "dGVzdA==", + /// HostNameSettings = new Tencentcloud.As.Inputs.ScalingConfigHostNameSettingsArgs + /// { + /// HostName = "host-name", + /// HostNameStyle = "UNIQUE", + /// }, + /// InstanceTags = + /// { + /// { "tag", "example" }, + /// }, + /// }); + /// + /// }); + /// ``` + /// <!--End PulumiCodeChooser --> + /// /// ## Import /// /// AutoScaling Configuration can be imported using the id, e.g. @@ -192,6 +259,12 @@ public partial class ScalingConfig : global::Pulumi.CustomResource [Output("dataDisks")] public Output> DataDisks { get; private set; } = null!; + /// + /// Dedicated Cluster ID. + /// + [Output("dedicatedClusterId")] + public Output DedicatedClusterId { get; private set; } = null!; + /// /// Policy of cloud disk type. Valid values: `ORIGINAL` and `AUTOMATIC`. Default is `ORIGINAL`. /// @@ -235,7 +308,7 @@ public partial class ScalingConfig : global::Pulumi.CustomResource public Output ImageId { get; private set; } = null!; /// - /// Charge type of instance. Valid values are `PREPAID`, `POSTPAID_BY_HOUR`, `SPOTPAID`. The default is `POSTPAID_BY_HOUR`. NOTE: `SPOTPAID` instance must set `spot_instance_type` and `spot_max_price` at the same time. + /// Charge type of instance. Valid values are `PREPAID`, `POSTPAID_BY_HOUR`, `SPOTPAID`, `CDCPAID`. The default is `POSTPAID_BY_HOUR`. NOTE: `SPOTPAID` instance must set `spot_instance_type` and `spot_max_price` at the same time. /// [Output("instanceChargeType")] public Output InstanceChargeType { get; private set; } = null!; @@ -429,6 +502,12 @@ public InputList DataDisks set => _dataDisks = value; } + /// + /// Dedicated Cluster ID. + /// + [Input("dedicatedClusterId")] + public Input? DedicatedClusterId { get; set; } + /// /// Policy of cloud disk type. Valid values: `ORIGINAL` and `AUTOMATIC`. Default is `ORIGINAL`. /// @@ -472,7 +551,7 @@ public InputList DataDisks public Input? ImageId { get; set; } /// - /// Charge type of instance. Valid values are `PREPAID`, `POSTPAID_BY_HOUR`, `SPOTPAID`. The default is `POSTPAID_BY_HOUR`. NOTE: `SPOTPAID` instance must set `spot_instance_type` and `spot_max_price` at the same time. + /// Charge type of instance. Valid values are `PREPAID`, `POSTPAID_BY_HOUR`, `SPOTPAID`, `CDCPAID`. The default is `POSTPAID_BY_HOUR`. NOTE: `SPOTPAID` instance must set `spot_instance_type` and `spot_max_price` at the same time. /// [Input("instanceChargeType")] public Input? InstanceChargeType { get; set; } @@ -657,6 +736,12 @@ public InputList DataDisks set => _dataDisks = value; } + /// + /// Dedicated Cluster ID. + /// + [Input("dedicatedClusterId")] + public Input? DedicatedClusterId { get; set; } + /// /// Policy of cloud disk type. Valid values: `ORIGINAL` and `AUTOMATIC`. Default is `ORIGINAL`. /// @@ -700,7 +785,7 @@ public InputList DataDisks public Input? ImageId { get; set; } /// - /// Charge type of instance. Valid values are `PREPAID`, `POSTPAID_BY_HOUR`, `SPOTPAID`. The default is `POSTPAID_BY_HOUR`. NOTE: `SPOTPAID` instance must set `spot_instance_type` and `spot_max_price` at the same time. + /// Charge type of instance. Valid values are `PREPAID`, `POSTPAID_BY_HOUR`, `SPOTPAID`, `CDCPAID`. The default is `POSTPAID_BY_HOUR`. NOTE: `SPOTPAID` instance must set `spot_instance_type` and `spot_max_price` at the same time. /// [Input("instanceChargeType")] public Input? InstanceChargeType { get; set; } diff --git a/sdk/dotnet/Tencentcloud/Clb/Inputs/ListenerRuleOauthArgs.cs b/sdk/dotnet/Tencentcloud/Clb/Inputs/ListenerRuleOauthArgs.cs new file mode 100644 index 000000000..c915a2081 --- /dev/null +++ b/sdk/dotnet/Tencentcloud/Clb/Inputs/ListenerRuleOauthArgs.cs @@ -0,0 +1,33 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; +using Pulumi; + +namespace TencentCloudIAC.PulumiPackage.Tencentcloud.Clb.Inputs +{ + + public sealed class ListenerRuleOauthArgs : global::Pulumi.ResourceArgs + { + /// + /// Enable or disable authentication. True: Enabled; False: Disabled. + /// + [Input("oauthEnable")] + public Input? OauthEnable { get; set; } + + /// + /// After all IAPs fail, the request is rejected or released. BYPASS: PASS; REJECT: Reject. + /// + [Input("oauthFailureStatus")] + public Input? OauthFailureStatus { get; set; } + + public ListenerRuleOauthArgs() + { + } + public static new ListenerRuleOauthArgs Empty => new ListenerRuleOauthArgs(); + } +} diff --git a/sdk/dotnet/Tencentcloud/Clb/Inputs/ListenerRuleOauthGetArgs.cs b/sdk/dotnet/Tencentcloud/Clb/Inputs/ListenerRuleOauthGetArgs.cs new file mode 100644 index 000000000..faccb4334 --- /dev/null +++ b/sdk/dotnet/Tencentcloud/Clb/Inputs/ListenerRuleOauthGetArgs.cs @@ -0,0 +1,33 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; +using Pulumi; + +namespace TencentCloudIAC.PulumiPackage.Tencentcloud.Clb.Inputs +{ + + public sealed class ListenerRuleOauthGetArgs : global::Pulumi.ResourceArgs + { + /// + /// Enable or disable authentication. True: Enabled; False: Disabled. + /// + [Input("oauthEnable")] + public Input? OauthEnable { get; set; } + + /// + /// After all IAPs fail, the request is rejected or released. BYPASS: PASS; REJECT: Reject. + /// + [Input("oauthFailureStatus")] + public Input? OauthFailureStatus { get; set; } + + public ListenerRuleOauthGetArgs() + { + } + public static new ListenerRuleOauthGetArgs Empty => new ListenerRuleOauthGetArgs(); + } +} diff --git a/sdk/dotnet/Tencentcloud/Clb/ListenerRule.cs b/sdk/dotnet/Tencentcloud/Clb/ListenerRule.cs index 47bb4237c..11e587964 100644 --- a/sdk/dotnet/Tencentcloud/Clb/ListenerRule.cs +++ b/sdk/dotnet/Tencentcloud/Clb/ListenerRule.cs @@ -214,6 +214,12 @@ public partial class ListenerRule : global::Pulumi.CustomResource [Output("listenerId")] public Output ListenerId { get; private set; } = null!; + /// + /// OAuth configuration information. + /// + [Output("oauth")] + public Output Oauth { get; private set; } = null!; + /// /// Whether to enable QUIC. Note: QUIC can be enabled only for HTTPS domain names. /// @@ -417,6 +423,12 @@ public InputList Domains [Input("listenerId", required: true)] public Input ListenerId { get; set; } = null!; + /// + /// OAuth configuration information. + /// + [Input("oauth")] + public Input? Oauth { get; set; } + /// /// Whether to enable QUIC. Note: QUIC can be enabled only for HTTPS domain names. /// @@ -575,6 +587,12 @@ public InputList Domains [Input("listenerId")] public Input? ListenerId { get; set; } + /// + /// OAuth configuration information. + /// + [Input("oauth")] + public Input? Oauth { get; set; } + /// /// Whether to enable QUIC. Note: QUIC can be enabled only for HTTPS domain names. /// diff --git a/sdk/dotnet/Tencentcloud/Clb/Outputs/ListenerRuleOauth.cs b/sdk/dotnet/Tencentcloud/Clb/Outputs/ListenerRuleOauth.cs new file mode 100644 index 000000000..e8a1e22da --- /dev/null +++ b/sdk/dotnet/Tencentcloud/Clb/Outputs/ListenerRuleOauth.cs @@ -0,0 +1,36 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; +using Pulumi; + +namespace TencentCloudIAC.PulumiPackage.Tencentcloud.Clb.Outputs +{ + + [OutputType] + public sealed class ListenerRuleOauth + { + /// + /// Enable or disable authentication. True: Enabled; False: Disabled. + /// + public readonly bool? OauthEnable; + /// + /// After all IAPs fail, the request is rejected or released. BYPASS: PASS; REJECT: Reject. + /// + public readonly string? OauthFailureStatus; + + [OutputConstructor] + private ListenerRuleOauth( + bool? oauthEnable, + + string? oauthFailureStatus) + { + OauthEnable = oauthEnable; + OauthFailureStatus = oauthFailureStatus; + } + } +} diff --git a/sdk/dotnet/Tencentcloud/Cls/CloudProductLogTask.cs b/sdk/dotnet/Tencentcloud/Cls/CloudProductLogTask.cs new file mode 100644 index 000000000..9d94e3f98 --- /dev/null +++ b/sdk/dotnet/Tencentcloud/Cls/CloudProductLogTask.cs @@ -0,0 +1,319 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; +using Pulumi; + +namespace TencentCloudIAC.PulumiPackage.Tencentcloud.Cls +{ + /// + /// Provides a resource to create a cls cloud product log task + /// + /// > **NOTE:** Using this resource will create new `logset` and `topic` + /// + /// ## Example Usage + /// + /// <!--Start PulumiCodeChooser --> + /// ```csharp + /// using System.Collections.Generic; + /// using System.Linq; + /// using Pulumi; + /// using Tencentcloud = TencentCloudIAC.PulumiPackage.Tencentcloud; + /// + /// return await Deployment.RunAsync(() => + /// { + /// var example = new Tencentcloud.Cls.CloudProductLogTask("example", new() + /// { + /// AssumerName = "PostgreSQL", + /// CloudProductRegion = "gz", + /// ClsRegion = "ap-guangzhou", + /// InstanceId = "postgres-1p7xvpc1", + /// LogType = "PostgreSQL-SLOW", + /// LogsetName = "tf-example", + /// TopicName = "tf-example", + /// }); + /// + /// }); + /// ``` + /// <!--End PulumiCodeChooser --> + /// + /// ## Import + /// + /// cls cloud product log task can be imported using the id, e.g. + /// + /// ```sh + /// $ pulumi import tencentcloud:Cls/cloudProductLogTask:CloudProductLogTask example postgres-1p7xvpc1#PostgreSQL#PostgreSQL-SLOW#gz + /// ``` + /// + [TencentcloudResourceType("tencentcloud:Cls/cloudProductLogTask:CloudProductLogTask")] + public partial class CloudProductLogTask : global::Pulumi.CustomResource + { + /// + /// Cloud product identification, Values: CDS, CWP, CDB, TDSQL-C, MongoDB, TDStore, DCDB, MariaDB, PostgreSQL, BH, APIS. + /// + [Output("assumerName")] + public Output AssumerName { get; private set; } = null!; + + /// + /// Cloud product region. There are differences in the input format of different log types in different regions. Please refer to the following example: + /// - CDS(all log type): ap-guangzhou + /// - CDB-AUDIT: gz + /// - TDSQL-C-AUDIT: gz + /// - MongoDB-AUDIT: gz + /// - MongoDB-SlowLog: ap-guangzhou + /// - MongoDB-ErrorLog: ap-guangzhou + /// - TDMYSQL-SLOW: gz + /// - DCDB(all log type): gz + /// - MariaDB(all log type): gz + /// - PostgreSQL(all log type): gz + /// - BH(all log type): overseas-polaris(Domestic sites overseas)/fsi-polaris(Domestic sites finance)/general-polaris(Domestic sites)/intl-sg-prod(International sites) + /// - APIS(all log type): gz. + /// + [Output("cloudProductRegion")] + public Output CloudProductRegion { get; private set; } = null!; + + /// + /// CLS target region. + /// + [Output("clsRegion")] + public Output ClsRegion { get; private set; } = null!; + + /// + /// Log configuration extension information, generally used to store additional log delivery configurations. + /// + [Output("extend")] + public Output Extend { get; private set; } = null!; + + /// + /// Instance ID. + /// + [Output("instanceId")] + public Output InstanceId { get; private set; } = null!; + + /// + /// Log type, Values: CDS-AUDIT, CDS-RISK, CDB-AUDIT, TDSQL-C-AUDIT, MongoDB-AUDIT, MongoDB-SlowLog, MongoDB-ErrorLog, TDMYSQL-SLOW, DCDB-AUDIT, DCDB-SLOW, DCDB-ERROR, MariaDB-AUDIT, MariaDB-SLOW, MariaDB-ERROR, PostgreSQL-SLOW, PostgreSQL-ERROR, PostgreSQL-AUDIT, BH-FILELOG, BH-COMMANDLOG, APIS-ACCESS. + /// + [Output("logType")] + public Output LogType { get; private set; } = null!; + + /// + /// Log set ID. + /// + [Output("logsetId")] + public Output LogsetId { get; private set; } = null!; + + /// + /// Log set name, it will be automatically created. + /// + [Output("logsetName")] + public Output LogsetName { get; private set; } = null!; + + /// + /// Log theme ID. + /// + [Output("topicId")] + public Output TopicId { get; private set; } = null!; + + /// + /// The name of the log topic, it will be automatically created. + /// + [Output("topicName")] + public Output TopicName { get; private set; } = null!; + + + /// + /// Create a CloudProductLogTask resource with the given unique name, arguments, and options. + /// + /// + /// The unique name of the resource + /// The arguments used to populate this resource's properties + /// A bag of options that control this resource's behavior + public CloudProductLogTask(string name, CloudProductLogTaskArgs args, CustomResourceOptions? options = null) + : base("tencentcloud:Cls/cloudProductLogTask:CloudProductLogTask", name, args ?? new CloudProductLogTaskArgs(), MakeResourceOptions(options, "")) + { + } + + private CloudProductLogTask(string name, Input id, CloudProductLogTaskState? state = null, CustomResourceOptions? options = null) + : base("tencentcloud:Cls/cloudProductLogTask:CloudProductLogTask", name, state, MakeResourceOptions(options, id)) + { + } + + private static CustomResourceOptions MakeResourceOptions(CustomResourceOptions? options, Input? id) + { + var defaultOptions = new CustomResourceOptions + { + Version = Utilities.Version, + PluginDownloadURL = "github://api.github.com/tencentcloudstack", + }; + var merged = CustomResourceOptions.Merge(defaultOptions, options); + // Override the ID if one was specified for consistency with other language SDKs. + merged.Id = id ?? merged.Id; + return merged; + } + /// + /// Get an existing CloudProductLogTask resource's state with the given name, ID, and optional extra + /// properties used to qualify the lookup. + /// + /// + /// The unique name of the resulting resource. + /// The unique provider ID of the resource to lookup. + /// Any extra arguments used during the lookup. + /// A bag of options that control this resource's behavior + public static CloudProductLogTask Get(string name, Input id, CloudProductLogTaskState? state = null, CustomResourceOptions? options = null) + { + return new CloudProductLogTask(name, id, state, options); + } + } + + public sealed class CloudProductLogTaskArgs : global::Pulumi.ResourceArgs + { + /// + /// Cloud product identification, Values: CDS, CWP, CDB, TDSQL-C, MongoDB, TDStore, DCDB, MariaDB, PostgreSQL, BH, APIS. + /// + [Input("assumerName", required: true)] + public Input AssumerName { get; set; } = null!; + + /// + /// Cloud product region. There are differences in the input format of different log types in different regions. Please refer to the following example: + /// - CDS(all log type): ap-guangzhou + /// - CDB-AUDIT: gz + /// - TDSQL-C-AUDIT: gz + /// - MongoDB-AUDIT: gz + /// - MongoDB-SlowLog: ap-guangzhou + /// - MongoDB-ErrorLog: ap-guangzhou + /// - TDMYSQL-SLOW: gz + /// - DCDB(all log type): gz + /// - MariaDB(all log type): gz + /// - PostgreSQL(all log type): gz + /// - BH(all log type): overseas-polaris(Domestic sites overseas)/fsi-polaris(Domestic sites finance)/general-polaris(Domestic sites)/intl-sg-prod(International sites) + /// - APIS(all log type): gz. + /// + [Input("cloudProductRegion", required: true)] + public Input CloudProductRegion { get; set; } = null!; + + /// + /// CLS target region. + /// + [Input("clsRegion", required: true)] + public Input ClsRegion { get; set; } = null!; + + /// + /// Log configuration extension information, generally used to store additional log delivery configurations. + /// + [Input("extend")] + public Input? Extend { get; set; } + + /// + /// Instance ID. + /// + [Input("instanceId", required: true)] + public Input InstanceId { get; set; } = null!; + + /// + /// Log type, Values: CDS-AUDIT, CDS-RISK, CDB-AUDIT, TDSQL-C-AUDIT, MongoDB-AUDIT, MongoDB-SlowLog, MongoDB-ErrorLog, TDMYSQL-SLOW, DCDB-AUDIT, DCDB-SLOW, DCDB-ERROR, MariaDB-AUDIT, MariaDB-SLOW, MariaDB-ERROR, PostgreSQL-SLOW, PostgreSQL-ERROR, PostgreSQL-AUDIT, BH-FILELOG, BH-COMMANDLOG, APIS-ACCESS. + /// + [Input("logType", required: true)] + public Input LogType { get; set; } = null!; + + /// + /// Log set name, it will be automatically created. + /// + [Input("logsetName")] + public Input? LogsetName { get; set; } + + /// + /// The name of the log topic, it will be automatically created. + /// + [Input("topicName")] + public Input? TopicName { get; set; } + + public CloudProductLogTaskArgs() + { + } + public static new CloudProductLogTaskArgs Empty => new CloudProductLogTaskArgs(); + } + + public sealed class CloudProductLogTaskState : global::Pulumi.ResourceArgs + { + /// + /// Cloud product identification, Values: CDS, CWP, CDB, TDSQL-C, MongoDB, TDStore, DCDB, MariaDB, PostgreSQL, BH, APIS. + /// + [Input("assumerName")] + public Input? AssumerName { get; set; } + + /// + /// Cloud product region. There are differences in the input format of different log types in different regions. Please refer to the following example: + /// - CDS(all log type): ap-guangzhou + /// - CDB-AUDIT: gz + /// - TDSQL-C-AUDIT: gz + /// - MongoDB-AUDIT: gz + /// - MongoDB-SlowLog: ap-guangzhou + /// - MongoDB-ErrorLog: ap-guangzhou + /// - TDMYSQL-SLOW: gz + /// - DCDB(all log type): gz + /// - MariaDB(all log type): gz + /// - PostgreSQL(all log type): gz + /// - BH(all log type): overseas-polaris(Domestic sites overseas)/fsi-polaris(Domestic sites finance)/general-polaris(Domestic sites)/intl-sg-prod(International sites) + /// - APIS(all log type): gz. + /// + [Input("cloudProductRegion")] + public Input? CloudProductRegion { get; set; } + + /// + /// CLS target region. + /// + [Input("clsRegion")] + public Input? ClsRegion { get; set; } + + /// + /// Log configuration extension information, generally used to store additional log delivery configurations. + /// + [Input("extend")] + public Input? Extend { get; set; } + + /// + /// Instance ID. + /// + [Input("instanceId")] + public Input? InstanceId { get; set; } + + /// + /// Log type, Values: CDS-AUDIT, CDS-RISK, CDB-AUDIT, TDSQL-C-AUDIT, MongoDB-AUDIT, MongoDB-SlowLog, MongoDB-ErrorLog, TDMYSQL-SLOW, DCDB-AUDIT, DCDB-SLOW, DCDB-ERROR, MariaDB-AUDIT, MariaDB-SLOW, MariaDB-ERROR, PostgreSQL-SLOW, PostgreSQL-ERROR, PostgreSQL-AUDIT, BH-FILELOG, BH-COMMANDLOG, APIS-ACCESS. + /// + [Input("logType")] + public Input? LogType { get; set; } + + /// + /// Log set ID. + /// + [Input("logsetId")] + public Input? LogsetId { get; set; } + + /// + /// Log set name, it will be automatically created. + /// + [Input("logsetName")] + public Input? LogsetName { get; set; } + + /// + /// Log theme ID. + /// + [Input("topicId")] + public Input? TopicId { get; set; } + + /// + /// The name of the log topic, it will be automatically created. + /// + [Input("topicName")] + public Input? TopicName { get; set; } + + public CloudProductLogTaskState() + { + } + public static new CloudProductLogTaskState Empty => new CloudProductLogTaskState(); + } +} diff --git a/sdk/dotnet/Tencentcloud/Cls/Inputs/NoticeContentNoticeContentsArgs.cs b/sdk/dotnet/Tencentcloud/Cls/Inputs/NoticeContentNoticeContentsArgs.cs new file mode 100644 index 000000000..77c32ca64 --- /dev/null +++ b/sdk/dotnet/Tencentcloud/Cls/Inputs/NoticeContentNoticeContentsArgs.cs @@ -0,0 +1,39 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; +using Pulumi; + +namespace TencentCloudIAC.PulumiPackage.Tencentcloud.Cls.Inputs +{ + + public sealed class NoticeContentNoticeContentsArgs : global::Pulumi.ResourceArgs + { + /// + /// Template for Alarm Recovery Notification Content. + /// + [Input("recoveryContent")] + public Input? RecoveryContent { get; set; } + + /// + /// Alarm triggered notification content template. + /// + [Input("triggerContent")] + public Input? TriggerContent { get; set; } + + /// + /// Channel type. Email: Email; Sms: SMS; WeChat: WeChat; Phone: Telephone; WeCom: Enterprise WeChat; DingTalk: DingTalk; Lark: Feishu; HTTP: Custom callback. + /// + [Input("type", required: true)] + public Input Type { get; set; } = null!; + + public NoticeContentNoticeContentsArgs() + { + } + public static new NoticeContentNoticeContentsArgs Empty => new NoticeContentNoticeContentsArgs(); + } +} diff --git a/sdk/dotnet/Tencentcloud/Cls/Inputs/NoticeContentNoticeContentsGetArgs.cs b/sdk/dotnet/Tencentcloud/Cls/Inputs/NoticeContentNoticeContentsGetArgs.cs new file mode 100644 index 000000000..b365f1768 --- /dev/null +++ b/sdk/dotnet/Tencentcloud/Cls/Inputs/NoticeContentNoticeContentsGetArgs.cs @@ -0,0 +1,39 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; +using Pulumi; + +namespace TencentCloudIAC.PulumiPackage.Tencentcloud.Cls.Inputs +{ + + public sealed class NoticeContentNoticeContentsGetArgs : global::Pulumi.ResourceArgs + { + /// + /// Template for Alarm Recovery Notification Content. + /// + [Input("recoveryContent")] + public Input? RecoveryContent { get; set; } + + /// + /// Alarm triggered notification content template. + /// + [Input("triggerContent")] + public Input? TriggerContent { get; set; } + + /// + /// Channel type. Email: Email; Sms: SMS; WeChat: WeChat; Phone: Telephone; WeCom: Enterprise WeChat; DingTalk: DingTalk; Lark: Feishu; HTTP: Custom callback. + /// + [Input("type", required: true)] + public Input Type { get; set; } = null!; + + public NoticeContentNoticeContentsGetArgs() + { + } + public static new NoticeContentNoticeContentsGetArgs Empty => new NoticeContentNoticeContentsGetArgs(); + } +} diff --git a/sdk/dotnet/Tencentcloud/Cls/Inputs/NoticeContentNoticeContentsRecoveryContentArgs.cs b/sdk/dotnet/Tencentcloud/Cls/Inputs/NoticeContentNoticeContentsRecoveryContentArgs.cs new file mode 100644 index 000000000..3924e27e5 --- /dev/null +++ b/sdk/dotnet/Tencentcloud/Cls/Inputs/NoticeContentNoticeContentsRecoveryContentArgs.cs @@ -0,0 +1,45 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; +using Pulumi; + +namespace TencentCloudIAC.PulumiPackage.Tencentcloud.Cls.Inputs +{ + + public sealed class NoticeContentNoticeContentsRecoveryContentArgs : global::Pulumi.ResourceArgs + { + /// + /// Notification content template body information. + /// + [Input("content")] + public Input? Content { get; set; } + + [Input("headers")] + private InputList? _headers; + + /// + /// Request headers: In HTTP requests, request headers contain additional information sent by the client to the server, such as user agent, authorization credentials, expected response format, etc. Only `custom callback` supports this configuration. + /// + public InputList Headers + { + get => _headers ?? (_headers = new InputList()); + set => _headers = value; + } + + /// + /// Notification content template title information. Some notification channel types do not support 'title', please refer to the Tencent Cloud Console page. + /// + [Input("title")] + public Input? Title { get; set; } + + public NoticeContentNoticeContentsRecoveryContentArgs() + { + } + public static new NoticeContentNoticeContentsRecoveryContentArgs Empty => new NoticeContentNoticeContentsRecoveryContentArgs(); + } +} diff --git a/sdk/dotnet/Tencentcloud/Cls/Inputs/NoticeContentNoticeContentsRecoveryContentGetArgs.cs b/sdk/dotnet/Tencentcloud/Cls/Inputs/NoticeContentNoticeContentsRecoveryContentGetArgs.cs new file mode 100644 index 000000000..11bff3a93 --- /dev/null +++ b/sdk/dotnet/Tencentcloud/Cls/Inputs/NoticeContentNoticeContentsRecoveryContentGetArgs.cs @@ -0,0 +1,45 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; +using Pulumi; + +namespace TencentCloudIAC.PulumiPackage.Tencentcloud.Cls.Inputs +{ + + public sealed class NoticeContentNoticeContentsRecoveryContentGetArgs : global::Pulumi.ResourceArgs + { + /// + /// Notification content template body information. + /// + [Input("content")] + public Input? Content { get; set; } + + [Input("headers")] + private InputList? _headers; + + /// + /// Request headers: In HTTP requests, request headers contain additional information sent by the client to the server, such as user agent, authorization credentials, expected response format, etc. Only `custom callback` supports this configuration. + /// + public InputList Headers + { + get => _headers ?? (_headers = new InputList()); + set => _headers = value; + } + + /// + /// Notification content template title information. Some notification channel types do not support 'title', please refer to the Tencent Cloud Console page. + /// + [Input("title")] + public Input? Title { get; set; } + + public NoticeContentNoticeContentsRecoveryContentGetArgs() + { + } + public static new NoticeContentNoticeContentsRecoveryContentGetArgs Empty => new NoticeContentNoticeContentsRecoveryContentGetArgs(); + } +} diff --git a/sdk/dotnet/Tencentcloud/Cls/Inputs/NoticeContentNoticeContentsTriggerContentArgs.cs b/sdk/dotnet/Tencentcloud/Cls/Inputs/NoticeContentNoticeContentsTriggerContentArgs.cs new file mode 100644 index 000000000..f49ebeb67 --- /dev/null +++ b/sdk/dotnet/Tencentcloud/Cls/Inputs/NoticeContentNoticeContentsTriggerContentArgs.cs @@ -0,0 +1,45 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; +using Pulumi; + +namespace TencentCloudIAC.PulumiPackage.Tencentcloud.Cls.Inputs +{ + + public sealed class NoticeContentNoticeContentsTriggerContentArgs : global::Pulumi.ResourceArgs + { + /// + /// Notification content template body information. + /// + [Input("content")] + public Input? Content { get; set; } + + [Input("headers")] + private InputList? _headers; + + /// + /// Request headers: In HTTP requests, request headers contain additional information sent by the client to the server, such as user agent, authorization credentials, expected response format, etc. Only `custom callback` supports this configuration. + /// + public InputList Headers + { + get => _headers ?? (_headers = new InputList()); + set => _headers = value; + } + + /// + /// Notification content template title information. Some notification channel types do not support 'title', please refer to the Tencent Cloud Console page. + /// + [Input("title")] + public Input? Title { get; set; } + + public NoticeContentNoticeContentsTriggerContentArgs() + { + } + public static new NoticeContentNoticeContentsTriggerContentArgs Empty => new NoticeContentNoticeContentsTriggerContentArgs(); + } +} diff --git a/sdk/dotnet/Tencentcloud/Cls/Inputs/NoticeContentNoticeContentsTriggerContentGetArgs.cs b/sdk/dotnet/Tencentcloud/Cls/Inputs/NoticeContentNoticeContentsTriggerContentGetArgs.cs new file mode 100644 index 000000000..329ccc482 --- /dev/null +++ b/sdk/dotnet/Tencentcloud/Cls/Inputs/NoticeContentNoticeContentsTriggerContentGetArgs.cs @@ -0,0 +1,45 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; +using Pulumi; + +namespace TencentCloudIAC.PulumiPackage.Tencentcloud.Cls.Inputs +{ + + public sealed class NoticeContentNoticeContentsTriggerContentGetArgs : global::Pulumi.ResourceArgs + { + /// + /// Notification content template body information. + /// + [Input("content")] + public Input? Content { get; set; } + + [Input("headers")] + private InputList? _headers; + + /// + /// Request headers: In HTTP requests, request headers contain additional information sent by the client to the server, such as user agent, authorization credentials, expected response format, etc. Only `custom callback` supports this configuration. + /// + public InputList Headers + { + get => _headers ?? (_headers = new InputList()); + set => _headers = value; + } + + /// + /// Notification content template title information. Some notification channel types do not support 'title', please refer to the Tencent Cloud Console page. + /// + [Input("title")] + public Input? Title { get; set; } + + public NoticeContentNoticeContentsTriggerContentGetArgs() + { + } + public static new NoticeContentNoticeContentsTriggerContentGetArgs Empty => new NoticeContentNoticeContentsTriggerContentGetArgs(); + } +} diff --git a/sdk/dotnet/Tencentcloud/Cls/NoticeContent.cs b/sdk/dotnet/Tencentcloud/Cls/NoticeContent.cs new file mode 100644 index 000000000..1b0e21be7 --- /dev/null +++ b/sdk/dotnet/Tencentcloud/Cls/NoticeContent.cs @@ -0,0 +1,183 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; +using Pulumi; + +namespace TencentCloudIAC.PulumiPackage.Tencentcloud.Cls +{ + /// + /// Provides a resource to create a cls notice content + /// + /// ## Example Usage + /// + /// <!--Start PulumiCodeChooser --> + /// ```csharp + /// using System.Collections.Generic; + /// using System.Linq; + /// using Pulumi; + /// using Tencentcloud = TencentCloudIAC.PulumiPackage.Tencentcloud; + /// + /// return await Deployment.RunAsync(() => + /// { + /// var example = new Tencentcloud.Cls.NoticeContent("example", new() + /// { + /// NoticeContents = new Tencentcloud.Cls.Inputs.NoticeContentNoticeContentsArgs + /// { + /// RecoveryContent = new Tencentcloud.Cls.Inputs.NoticeContentNoticeContentsRecoveryContentArgs + /// { + /// Content = "This is content.", + /// Headers = new[] + /// { + /// "Content-Type:application/json", + /// }, + /// Title = "title", + /// }, + /// TriggerContent = new Tencentcloud.Cls.Inputs.NoticeContentNoticeContentsTriggerContentArgs + /// { + /// Content = "This is content.", + /// Headers = new[] + /// { + /// "Content-Type:application/json", + /// }, + /// Title = "title", + /// }, + /// Type = "Email", + /// }, + /// Type = 0, + /// }); + /// + /// }); + /// ``` + /// <!--End PulumiCodeChooser --> + /// + /// ## Import + /// + /// cls notice content can be imported using the id, e.g. + /// + /// ```sh + /// $ pulumi import tencentcloud:Cls/noticeContent:NoticeContent example noticetemplate-b417f32a-bdf9-46c5-933e-28c23cd7a6b7 + /// ``` + /// + [TencentcloudResourceType("tencentcloud:Cls/noticeContent:NoticeContent")] + public partial class NoticeContent : global::Pulumi.CustomResource + { + /// + /// Notice content name. + /// + [Output("name")] + public Output Name { get; private set; } = null!; + + /// + /// Template detailed configuration. + /// + [Output("noticeContents")] + public Output NoticeContents { get; private set; } = null!; + + /// + /// Template content language. 0: Chinese 1: English. + /// + [Output("type")] + public Output Type { get; private set; } = null!; + + + /// + /// Create a NoticeContent resource with the given unique name, arguments, and options. + /// + /// + /// The unique name of the resource + /// The arguments used to populate this resource's properties + /// A bag of options that control this resource's behavior + public NoticeContent(string name, NoticeContentArgs? args = null, CustomResourceOptions? options = null) + : base("tencentcloud:Cls/noticeContent:NoticeContent", name, args ?? new NoticeContentArgs(), MakeResourceOptions(options, "")) + { + } + + private NoticeContent(string name, Input id, NoticeContentState? state = null, CustomResourceOptions? options = null) + : base("tencentcloud:Cls/noticeContent:NoticeContent", name, state, MakeResourceOptions(options, id)) + { + } + + private static CustomResourceOptions MakeResourceOptions(CustomResourceOptions? options, Input? id) + { + var defaultOptions = new CustomResourceOptions + { + Version = Utilities.Version, + PluginDownloadURL = "github://api.github.com/tencentcloudstack", + }; + var merged = CustomResourceOptions.Merge(defaultOptions, options); + // Override the ID if one was specified for consistency with other language SDKs. + merged.Id = id ?? merged.Id; + return merged; + } + /// + /// Get an existing NoticeContent resource's state with the given name, ID, and optional extra + /// properties used to qualify the lookup. + /// + /// + /// The unique name of the resulting resource. + /// The unique provider ID of the resource to lookup. + /// Any extra arguments used during the lookup. + /// A bag of options that control this resource's behavior + public static NoticeContent Get(string name, Input id, NoticeContentState? state = null, CustomResourceOptions? options = null) + { + return new NoticeContent(name, id, state, options); + } + } + + public sealed class NoticeContentArgs : global::Pulumi.ResourceArgs + { + /// + /// Notice content name. + /// + [Input("name")] + public Input? Name { get; set; } + + /// + /// Template detailed configuration. + /// + [Input("noticeContents")] + public Input? NoticeContents { get; set; } + + /// + /// Template content language. 0: Chinese 1: English. + /// + [Input("type")] + public Input? Type { get; set; } + + public NoticeContentArgs() + { + } + public static new NoticeContentArgs Empty => new NoticeContentArgs(); + } + + public sealed class NoticeContentState : global::Pulumi.ResourceArgs + { + /// + /// Notice content name. + /// + [Input("name")] + public Input? Name { get; set; } + + /// + /// Template detailed configuration. + /// + [Input("noticeContents")] + public Input? NoticeContents { get; set; } + + /// + /// Template content language. 0: Chinese 1: English. + /// + [Input("type")] + public Input? Type { get; set; } + + public NoticeContentState() + { + } + public static new NoticeContentState Empty => new NoticeContentState(); + } +} diff --git a/sdk/dotnet/Tencentcloud/Cls/Outputs/NoticeContentNoticeContents.cs b/sdk/dotnet/Tencentcloud/Cls/Outputs/NoticeContentNoticeContents.cs new file mode 100644 index 000000000..4a8f6de69 --- /dev/null +++ b/sdk/dotnet/Tencentcloud/Cls/Outputs/NoticeContentNoticeContents.cs @@ -0,0 +1,43 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; +using Pulumi; + +namespace TencentCloudIAC.PulumiPackage.Tencentcloud.Cls.Outputs +{ + + [OutputType] + public sealed class NoticeContentNoticeContents + { + /// + /// Template for Alarm Recovery Notification Content. + /// + public readonly Outputs.NoticeContentNoticeContentsRecoveryContent? RecoveryContent; + /// + /// Alarm triggered notification content template. + /// + public readonly Outputs.NoticeContentNoticeContentsTriggerContent? TriggerContent; + /// + /// Channel type. Email: Email; Sms: SMS; WeChat: WeChat; Phone: Telephone; WeCom: Enterprise WeChat; DingTalk: DingTalk; Lark: Feishu; HTTP: Custom callback. + /// + public readonly string Type; + + [OutputConstructor] + private NoticeContentNoticeContents( + Outputs.NoticeContentNoticeContentsRecoveryContent? recoveryContent, + + Outputs.NoticeContentNoticeContentsTriggerContent? triggerContent, + + string type) + { + RecoveryContent = recoveryContent; + TriggerContent = triggerContent; + Type = type; + } + } +} diff --git a/sdk/dotnet/Tencentcloud/Cls/Outputs/NoticeContentNoticeContentsRecoveryContent.cs b/sdk/dotnet/Tencentcloud/Cls/Outputs/NoticeContentNoticeContentsRecoveryContent.cs new file mode 100644 index 000000000..8211cb0bb --- /dev/null +++ b/sdk/dotnet/Tencentcloud/Cls/Outputs/NoticeContentNoticeContentsRecoveryContent.cs @@ -0,0 +1,43 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; +using Pulumi; + +namespace TencentCloudIAC.PulumiPackage.Tencentcloud.Cls.Outputs +{ + + [OutputType] + public sealed class NoticeContentNoticeContentsRecoveryContent + { + /// + /// Notification content template body information. + /// + public readonly string? Content; + /// + /// Request headers: In HTTP requests, request headers contain additional information sent by the client to the server, such as user agent, authorization credentials, expected response format, etc. Only `custom callback` supports this configuration. + /// + public readonly ImmutableArray Headers; + /// + /// Notification content template title information. Some notification channel types do not support 'title', please refer to the Tencent Cloud Console page. + /// + public readonly string? Title; + + [OutputConstructor] + private NoticeContentNoticeContentsRecoveryContent( + string? content, + + ImmutableArray headers, + + string? title) + { + Content = content; + Headers = headers; + Title = title; + } + } +} diff --git a/sdk/dotnet/Tencentcloud/Cls/Outputs/NoticeContentNoticeContentsTriggerContent.cs b/sdk/dotnet/Tencentcloud/Cls/Outputs/NoticeContentNoticeContentsTriggerContent.cs new file mode 100644 index 000000000..899eae38e --- /dev/null +++ b/sdk/dotnet/Tencentcloud/Cls/Outputs/NoticeContentNoticeContentsTriggerContent.cs @@ -0,0 +1,43 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; +using Pulumi; + +namespace TencentCloudIAC.PulumiPackage.Tencentcloud.Cls.Outputs +{ + + [OutputType] + public sealed class NoticeContentNoticeContentsTriggerContent + { + /// + /// Notification content template body information. + /// + public readonly string? Content; + /// + /// Request headers: In HTTP requests, request headers contain additional information sent by the client to the server, such as user agent, authorization credentials, expected response format, etc. Only `custom callback` supports this configuration. + /// + public readonly ImmutableArray Headers; + /// + /// Notification content template title information. Some notification channel types do not support 'title', please refer to the Tencent Cloud Console page. + /// + public readonly string? Title; + + [OutputConstructor] + private NoticeContentNoticeContentsTriggerContent( + string? content, + + ImmutableArray headers, + + string? title) + { + Content = content; + Headers = headers; + Title = title; + } + } +} diff --git a/sdk/dotnet/Tencentcloud/Kubernetes/NodePool.cs b/sdk/dotnet/Tencentcloud/Kubernetes/NodePool.cs index 84e6327d7..30e64f626 100644 --- a/sdk/dotnet/Tencentcloud/Kubernetes/NodePool.cs +++ b/sdk/dotnet/Tencentcloud/Kubernetes/NodePool.cs @@ -19,6 +19,8 @@ namespace TencentCloudIAC.PulumiPackage.Tencentcloud.Kubernetes /// /// > **NOTE:** In order to ensure the integrity of customer data, if the cvm instance was destroyed due to shrinking, it will keep the cbs associate with cvm by default. If you want to destroy together, please set `delete_with_instance` to `true`. /// + /// > **NOTE:** There are two parameters `wait_node_ready` and `scale_tolerance` to ensure better management of node pool scaling operations. If this parameter is set, when creating resources, if the set criteria are not met, the resources will be marked as `tainted`. + /// /// ## Example Usage /// /// <!--Start PulumiCodeChooser --> @@ -195,6 +197,94 @@ namespace TencentCloudIAC.PulumiPackage.Tencentcloud.Kubernetes /// ``` /// <!--End PulumiCodeChooser --> /// + /// <!--Start PulumiCodeChooser --> + /// ```csharp + /// using System.Collections.Generic; + /// using System.Linq; + /// using Pulumi; + /// using Tencentcloud = TencentCloudIAC.PulumiPackage.Tencentcloud; + /// + /// return await Deployment.RunAsync(() => + /// { + /// var example = new Tencentcloud.Kubernetes.NodePool("example", new() + /// { + /// ClusterId = tencentcloud_kubernetes_cluster.Managed_cluster.Id, + /// MaxSize = 100, + /// MinSize = 1, + /// VpcId = data.Tencentcloud_vpc_subnets.Vpc.Instance_list[0].Vpc_id, + /// SubnetIds = new[] + /// { + /// data.Tencentcloud_vpc_subnets.Vpc.Instance_list[0].Subnet_id, + /// }, + /// RetryPolicy = "INCREMENTAL_INTERVALS", + /// DesiredCapacity = 50, + /// EnableAutoScale = false, + /// WaitNodeReady = true, + /// ScaleTolerance = 90, + /// MultiZoneSubnetPolicy = "EQUALITY", + /// NodeOs = "img-6n21msk1", + /// DeleteKeepInstance = false, + /// AutoScalingConfig = new Tencentcloud.Kubernetes.Inputs.NodePoolAutoScalingConfigArgs + /// { + /// InstanceType = @var.Default_instance_type, + /// SystemDiskType = "CLOUD_PREMIUM", + /// SystemDiskSize = 50, + /// OrderlySecurityGroupIds = new[] + /// { + /// "sg-bw28gmso", + /// }, + /// DataDisks = new[] + /// { + /// new Tencentcloud.Kubernetes.Inputs.NodePoolAutoScalingConfigDataDiskArgs + /// { + /// DiskType = "CLOUD_PREMIUM", + /// DiskSize = 50, + /// DeleteWithInstance = true, + /// }, + /// }, + /// InternetChargeType = "TRAFFIC_POSTPAID_BY_HOUR", + /// InternetMaxBandwidthOut = 10, + /// PublicIpAssigned = true, + /// Password = "test123#", + /// EnhancedSecurityService = false, + /// EnhancedMonitorService = false, + /// HostName = "12.123.0.0", + /// HostNameStyle = "ORIGINAL", + /// }, + /// Labels = + /// { + /// { "test1", "test1" }, + /// { "test2", "test2" }, + /// }, + /// Taints = new[] + /// { + /// new Tencentcloud.Kubernetes.Inputs.NodePoolTaintArgs + /// { + /// Key = "test_taint", + /// Value = "taint_value", + /// Effect = "PreferNoSchedule", + /// }, + /// new Tencentcloud.Kubernetes.Inputs.NodePoolTaintArgs + /// { + /// Key = "test_taint2", + /// Value = "taint_value2", + /// Effect = "PreferNoSchedule", + /// }, + /// }, + /// NodeConfig = new Tencentcloud.Kubernetes.Inputs.NodePoolNodeConfigArgs + /// { + /// DockerGraphPath = "/var/lib/docker", + /// ExtraArgs = new[] + /// { + /// "root-dir=/var/lib/kubelet", + /// }, + /// }, + /// }); + /// + /// }); + /// ``` + /// <!--End PulumiCodeChooser --> + /// /// ## Import /// /// tke node pool can be imported, e.g. @@ -338,6 +428,12 @@ public partial class NodePool : global::Pulumi.CustomResource [Output("retryPolicy")] public Output RetryPolicy { get; private set; } = null!; + /// + /// Control how many expectations(`desired_capacity`) can be tolerated successfully. Unit is percentage, Default is `100`. Only can be set if `wait_node_ready` is `true`. + /// + [Output("scaleTolerance")] + public Output ScaleTolerance { get; private set; } = null!; + /// /// Name of relative scaling group. /// @@ -398,6 +494,12 @@ public partial class NodePool : global::Pulumi.CustomResource [Output("vpcId")] public Output VpcId { get; private set; } = null!; + /// + /// Whether to wait for all expansion resources to be ready. Default is false. Only can be set if `enable_auto_scale` is `false`. + /// + [Output("waitNodeReady")] + public Output WaitNodeReady { get; private set; } = null!; + /// /// List of auto scaling group available zones, for Basic network it is required. /// @@ -565,6 +667,12 @@ public InputMap Labels [Input("retryPolicy")] public Input? RetryPolicy { get; set; } + /// + /// Control how many expectations(`desired_capacity`) can be tolerated successfully. Unit is percentage, Default is `100`. Only can be set if `wait_node_ready` is `true`. + /// + [Input("scaleTolerance")] + public Input? ScaleTolerance { get; set; } + /// /// Name of relative scaling group. /// @@ -637,6 +745,12 @@ public InputList Taints [Input("vpcId", required: true)] public Input VpcId { get; set; } = null!; + /// + /// Whether to wait for all expansion resources to be ready. Default is false. Only can be set if `enable_auto_scale` is `false`. + /// + [Input("waitNodeReady")] + public Input? WaitNodeReady { get; set; } + [Input("zones")] private InputList? _zones; @@ -801,6 +915,12 @@ public InputMap Labels [Input("retryPolicy")] public Input? RetryPolicy { get; set; } + /// + /// Control how many expectations(`desired_capacity`) can be tolerated successfully. Unit is percentage, Default is `100`. Only can be set if `wait_node_ready` is `true`. + /// + [Input("scaleTolerance")] + public Input? ScaleTolerance { get; set; } + /// /// Name of relative scaling group. /// @@ -879,6 +999,12 @@ public InputList Taints [Input("vpcId")] public Input? VpcId { get; set; } + /// + /// Whether to wait for all expansion resources to be ready. Default is false. Only can be set if `enable_auto_scale` is `false`. + /// + [Input("waitNodeReady")] + public Input? WaitNodeReady { get; set; } + [Input("zones")] private InputList? _zones; diff --git a/sdk/dotnet/Tencentcloud/Reserve/IpAddress.cs b/sdk/dotnet/Tencentcloud/Reserve/IpAddress.cs index 89fdaa9ad..fb774e345 100644 --- a/sdk/dotnet/Tencentcloud/Reserve/IpAddress.cs +++ b/sdk/dotnet/Tencentcloud/Reserve/IpAddress.cs @@ -10,6 +10,44 @@ namespace TencentCloudIAC.PulumiPackage.Tencentcloud.Reserve { + /// + /// Provides a resource to create a vpc reserve ip addresses + /// + /// ## Example Usage + /// + /// <!--Start PulumiCodeChooser --> + /// ```csharp + /// using System.Collections.Generic; + /// using System.Linq; + /// using Pulumi; + /// using Tencentcloud = TencentCloudIAC.PulumiPackage.Tencentcloud; + /// + /// return await Deployment.RunAsync(() => + /// { + /// var reserveIp = new Tencentcloud.Reserve.IpAddress("reserveIp", new() + /// { + /// Description = "description", + /// ReserveIpAddress = "10.0.0.13", + /// SubnetId = "xxxxxx", + /// Tags = + /// { + /// { "test1", "test1" }, + /// }, + /// VpcId = "xxxxxx", + /// }); + /// + /// }); + /// ``` + /// <!--End PulumiCodeChooser --> + /// + /// ## Import + /// + /// vpc reserve_ip_addresses can be imported using the id, e.g. + /// + /// ```sh + /// $ pulumi import tencentcloud:Reserve/ipAddress:IpAddress reserve_ip_addresses ${vpcId}#${reserveIpId} + /// ``` + /// [TencentcloudResourceType("tencentcloud:Reserve/ipAddress:IpAddress")] public partial class IpAddress : global::Pulumi.CustomResource { diff --git a/sdk/dotnet/Tencentcloud/Scf/CustomDomain.cs b/sdk/dotnet/Tencentcloud/Scf/CustomDomain.cs new file mode 100644 index 000000000..ddff32a3d --- /dev/null +++ b/sdk/dotnet/Tencentcloud/Scf/CustomDomain.cs @@ -0,0 +1,224 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; +using Pulumi; + +namespace TencentCloudIAC.PulumiPackage.Tencentcloud.Scf +{ + /// + /// Provides a resource to create a scf custom domain + /// + /// ## Example Usage + /// + /// <!--Start PulumiCodeChooser --> + /// ```csharp + /// using System.Collections.Generic; + /// using System.Linq; + /// using Pulumi; + /// using Tencentcloud = TencentCloudIAC.PulumiPackage.Tencentcloud; + /// + /// return await Deployment.RunAsync(() => + /// { + /// var scfCustomDomain = new Tencentcloud.Scf.CustomDomain("scfCustomDomain", new() + /// { + /// Domain = "xxxxxx", + /// EndpointsConfigs = new[] + /// { + /// new Tencentcloud.Scf.Inputs.CustomDomainEndpointsConfigArgs + /// { + /// FunctionName = "xxxxxx", + /// Namespace = "default", + /// PathMatch = "/aa/*", + /// Qualifier = "$LATEST", + /// }, + /// }, + /// Protocol = "HTTP", + /// WafConfig = new Tencentcloud.Scf.Inputs.CustomDomainWafConfigArgs + /// { + /// WafOpen = "CLOSE", + /// }, + /// }); + /// + /// }); + /// ``` + /// <!--End PulumiCodeChooser --> + /// + /// ## Import + /// + /// scf scf_custom_domain can be imported using the id, e.g. + /// + /// ```sh + /// $ pulumi import tencentcloud:Scf/customDomain:CustomDomain scf_custom_domain ${domain} + /// ``` + /// + [TencentcloudResourceType("tencentcloud:Scf/customDomain:CustomDomain")] + public partial class CustomDomain : global::Pulumi.CustomResource + { + /// + /// Certificate configuration information, required for HTTPS protocol. + /// + [Output("certConfig")] + public Output CertConfig { get; private set; } = null!; + + /// + /// Domain names, pan-domain names are not supported. + /// + [Output("domain")] + public Output Domain { get; private set; } = null!; + + /// + /// Routing configuration. + /// + [Output("endpointsConfigs")] + public Output> EndpointsConfigs { get; private set; } = null!; + + /// + /// Protocol, value range: HTTP, HTTPS, HTTP&HTTPS. + /// + [Output("protocol")] + public Output Protocol { get; private set; } = null!; + + /// + /// Web Application Firewall Configuration. + /// + [Output("wafConfig")] + public Output WafConfig { get; private set; } = null!; + + + /// + /// Create a CustomDomain resource with the given unique name, arguments, and options. + /// + /// + /// The unique name of the resource + /// The arguments used to populate this resource's properties + /// A bag of options that control this resource's behavior + public CustomDomain(string name, CustomDomainArgs args, CustomResourceOptions? options = null) + : base("tencentcloud:Scf/customDomain:CustomDomain", name, args ?? new CustomDomainArgs(), MakeResourceOptions(options, "")) + { + } + + private CustomDomain(string name, Input id, CustomDomainState? state = null, CustomResourceOptions? options = null) + : base("tencentcloud:Scf/customDomain:CustomDomain", name, state, MakeResourceOptions(options, id)) + { + } + + private static CustomResourceOptions MakeResourceOptions(CustomResourceOptions? options, Input? id) + { + var defaultOptions = new CustomResourceOptions + { + Version = Utilities.Version, + PluginDownloadURL = "github://api.github.com/tencentcloudstack", + }; + var merged = CustomResourceOptions.Merge(defaultOptions, options); + // Override the ID if one was specified for consistency with other language SDKs. + merged.Id = id ?? merged.Id; + return merged; + } + /// + /// Get an existing CustomDomain resource's state with the given name, ID, and optional extra + /// properties used to qualify the lookup. + /// + /// + /// The unique name of the resulting resource. + /// The unique provider ID of the resource to lookup. + /// Any extra arguments used during the lookup. + /// A bag of options that control this resource's behavior + public static CustomDomain Get(string name, Input id, CustomDomainState? state = null, CustomResourceOptions? options = null) + { + return new CustomDomain(name, id, state, options); + } + } + + public sealed class CustomDomainArgs : global::Pulumi.ResourceArgs + { + /// + /// Certificate configuration information, required for HTTPS protocol. + /// + [Input("certConfig")] + public Input? CertConfig { get; set; } + + /// + /// Domain names, pan-domain names are not supported. + /// + [Input("domain", required: true)] + public Input Domain { get; set; } = null!; + + [Input("endpointsConfigs", required: true)] + private InputList? _endpointsConfigs; + + /// + /// Routing configuration. + /// + public InputList EndpointsConfigs + { + get => _endpointsConfigs ?? (_endpointsConfigs = new InputList()); + set => _endpointsConfigs = value; + } + + /// + /// Protocol, value range: HTTP, HTTPS, HTTP&HTTPS. + /// + [Input("protocol", required: true)] + public Input Protocol { get; set; } = null!; + + /// + /// Web Application Firewall Configuration. + /// + [Input("wafConfig")] + public Input? WafConfig { get; set; } + + public CustomDomainArgs() + { + } + public static new CustomDomainArgs Empty => new CustomDomainArgs(); + } + + public sealed class CustomDomainState : global::Pulumi.ResourceArgs + { + /// + /// Certificate configuration information, required for HTTPS protocol. + /// + [Input("certConfig")] + public Input? CertConfig { get; set; } + + /// + /// Domain names, pan-domain names are not supported. + /// + [Input("domain")] + public Input? Domain { get; set; } + + [Input("endpointsConfigs")] + private InputList? _endpointsConfigs; + + /// + /// Routing configuration. + /// + public InputList EndpointsConfigs + { + get => _endpointsConfigs ?? (_endpointsConfigs = new InputList()); + set => _endpointsConfigs = value; + } + + /// + /// Protocol, value range: HTTP, HTTPS, HTTP&HTTPS. + /// + [Input("protocol")] + public Input? Protocol { get; set; } + + /// + /// Web Application Firewall Configuration. + /// + [Input("wafConfig")] + public Input? WafConfig { get; set; } + + public CustomDomainState() + { + } + public static new CustomDomainState Empty => new CustomDomainState(); + } +} diff --git a/sdk/dotnet/Tencentcloud/Scf/Inputs/CustomDomainCertConfigArgs.cs b/sdk/dotnet/Tencentcloud/Scf/Inputs/CustomDomainCertConfigArgs.cs new file mode 100644 index 000000000..df642e1a2 --- /dev/null +++ b/sdk/dotnet/Tencentcloud/Scf/Inputs/CustomDomainCertConfigArgs.cs @@ -0,0 +1,27 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; +using Pulumi; + +namespace TencentCloudIAC.PulumiPackage.Tencentcloud.Scf.Inputs +{ + + public sealed class CustomDomainCertConfigArgs : global::Pulumi.ResourceArgs + { + /// + /// SSL Certificates ID. + /// + [Input("certificateId")] + public Input? CertificateId { get; set; } + + public CustomDomainCertConfigArgs() + { + } + public static new CustomDomainCertConfigArgs Empty => new CustomDomainCertConfigArgs(); + } +} diff --git a/sdk/dotnet/Tencentcloud/Scf/Inputs/CustomDomainCertConfigGetArgs.cs b/sdk/dotnet/Tencentcloud/Scf/Inputs/CustomDomainCertConfigGetArgs.cs new file mode 100644 index 000000000..a044f2c66 --- /dev/null +++ b/sdk/dotnet/Tencentcloud/Scf/Inputs/CustomDomainCertConfigGetArgs.cs @@ -0,0 +1,27 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; +using Pulumi; + +namespace TencentCloudIAC.PulumiPackage.Tencentcloud.Scf.Inputs +{ + + public sealed class CustomDomainCertConfigGetArgs : global::Pulumi.ResourceArgs + { + /// + /// SSL Certificates ID. + /// + [Input("certificateId")] + public Input? CertificateId { get; set; } + + public CustomDomainCertConfigGetArgs() + { + } + public static new CustomDomainCertConfigGetArgs Empty => new CustomDomainCertConfigGetArgs(); + } +} diff --git a/sdk/dotnet/Tencentcloud/Scf/Inputs/CustomDomainEndpointsConfigArgs.cs b/sdk/dotnet/Tencentcloud/Scf/Inputs/CustomDomainEndpointsConfigArgs.cs new file mode 100644 index 000000000..c07e69418 --- /dev/null +++ b/sdk/dotnet/Tencentcloud/Scf/Inputs/CustomDomainEndpointsConfigArgs.cs @@ -0,0 +1,57 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; +using Pulumi; + +namespace TencentCloudIAC.PulumiPackage.Tencentcloud.Scf.Inputs +{ + + public sealed class CustomDomainEndpointsConfigArgs : global::Pulumi.ResourceArgs + { + /// + /// Function name. + /// + [Input("functionName", required: true)] + public Input FunctionName { get; set; } = null!; + + /// + /// Function namespace. + /// + [Input("namespace", required: true)] + public Input Namespace { get; set; } = null!; + + /// + /// Path, value specification: /,/*,/xxx,/xxx/a,/xxx/*. + /// + [Input("pathMatch", required: true)] + public Input PathMatch { get; set; } = null!; + + [Input("pathRewrites")] + private InputList? _pathRewrites; + + /// + /// Path rewriting policy. + /// + public InputList PathRewrites + { + get => _pathRewrites ?? (_pathRewrites = new InputList()); + set => _pathRewrites = value; + } + + /// + /// Function alias or version. + /// + [Input("qualifier", required: true)] + public Input Qualifier { get; set; } = null!; + + public CustomDomainEndpointsConfigArgs() + { + } + public static new CustomDomainEndpointsConfigArgs Empty => new CustomDomainEndpointsConfigArgs(); + } +} diff --git a/sdk/dotnet/Tencentcloud/Scf/Inputs/CustomDomainEndpointsConfigGetArgs.cs b/sdk/dotnet/Tencentcloud/Scf/Inputs/CustomDomainEndpointsConfigGetArgs.cs new file mode 100644 index 000000000..6cde414f4 --- /dev/null +++ b/sdk/dotnet/Tencentcloud/Scf/Inputs/CustomDomainEndpointsConfigGetArgs.cs @@ -0,0 +1,57 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; +using Pulumi; + +namespace TencentCloudIAC.PulumiPackage.Tencentcloud.Scf.Inputs +{ + + public sealed class CustomDomainEndpointsConfigGetArgs : global::Pulumi.ResourceArgs + { + /// + /// Function name. + /// + [Input("functionName", required: true)] + public Input FunctionName { get; set; } = null!; + + /// + /// Function namespace. + /// + [Input("namespace", required: true)] + public Input Namespace { get; set; } = null!; + + /// + /// Path, value specification: /,/*,/xxx,/xxx/a,/xxx/*. + /// + [Input("pathMatch", required: true)] + public Input PathMatch { get; set; } = null!; + + [Input("pathRewrites")] + private InputList? _pathRewrites; + + /// + /// Path rewriting policy. + /// + public InputList PathRewrites + { + get => _pathRewrites ?? (_pathRewrites = new InputList()); + set => _pathRewrites = value; + } + + /// + /// Function alias or version. + /// + [Input("qualifier", required: true)] + public Input Qualifier { get; set; } = null!; + + public CustomDomainEndpointsConfigGetArgs() + { + } + public static new CustomDomainEndpointsConfigGetArgs Empty => new CustomDomainEndpointsConfigGetArgs(); + } +} diff --git a/sdk/dotnet/Tencentcloud/Scf/Inputs/CustomDomainEndpointsConfigPathRewriteArgs.cs b/sdk/dotnet/Tencentcloud/Scf/Inputs/CustomDomainEndpointsConfigPathRewriteArgs.cs new file mode 100644 index 000000000..f24e80aab --- /dev/null +++ b/sdk/dotnet/Tencentcloud/Scf/Inputs/CustomDomainEndpointsConfigPathRewriteArgs.cs @@ -0,0 +1,39 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; +using Pulumi; + +namespace TencentCloudIAC.PulumiPackage.Tencentcloud.Scf.Inputs +{ + + public sealed class CustomDomainEndpointsConfigPathRewriteArgs : global::Pulumi.ResourceArgs + { + /// + /// Path that needs to be rerouted, value specification: /,/*,/xxx,/xxx/a,/xxx/*. + /// + [Input("path", required: true)] + public Input Path { get; set; } = null!; + + /// + /// Replacement values: such as/, /$. + /// + [Input("rewrite", required: true)] + public Input Rewrite { get; set; } = null!; + + /// + /// Matching rules, value range: WildcardRules wildcard matching, ExactRules exact matching. + /// + [Input("type", required: true)] + public Input Type { get; set; } = null!; + + public CustomDomainEndpointsConfigPathRewriteArgs() + { + } + public static new CustomDomainEndpointsConfigPathRewriteArgs Empty => new CustomDomainEndpointsConfigPathRewriteArgs(); + } +} diff --git a/sdk/dotnet/Tencentcloud/Scf/Inputs/CustomDomainEndpointsConfigPathRewriteGetArgs.cs b/sdk/dotnet/Tencentcloud/Scf/Inputs/CustomDomainEndpointsConfigPathRewriteGetArgs.cs new file mode 100644 index 000000000..2622895e0 --- /dev/null +++ b/sdk/dotnet/Tencentcloud/Scf/Inputs/CustomDomainEndpointsConfigPathRewriteGetArgs.cs @@ -0,0 +1,39 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; +using Pulumi; + +namespace TencentCloudIAC.PulumiPackage.Tencentcloud.Scf.Inputs +{ + + public sealed class CustomDomainEndpointsConfigPathRewriteGetArgs : global::Pulumi.ResourceArgs + { + /// + /// Path that needs to be rerouted, value specification: /,/*,/xxx,/xxx/a,/xxx/*. + /// + [Input("path", required: true)] + public Input Path { get; set; } = null!; + + /// + /// Replacement values: such as/, /$. + /// + [Input("rewrite", required: true)] + public Input Rewrite { get; set; } = null!; + + /// + /// Matching rules, value range: WildcardRules wildcard matching, ExactRules exact matching. + /// + [Input("type", required: true)] + public Input Type { get; set; } = null!; + + public CustomDomainEndpointsConfigPathRewriteGetArgs() + { + } + public static new CustomDomainEndpointsConfigPathRewriteGetArgs Empty => new CustomDomainEndpointsConfigPathRewriteGetArgs(); + } +} diff --git a/sdk/dotnet/Tencentcloud/Scf/Inputs/CustomDomainWafConfigArgs.cs b/sdk/dotnet/Tencentcloud/Scf/Inputs/CustomDomainWafConfigArgs.cs new file mode 100644 index 000000000..5c02349a6 --- /dev/null +++ b/sdk/dotnet/Tencentcloud/Scf/Inputs/CustomDomainWafConfigArgs.cs @@ -0,0 +1,33 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; +using Pulumi; + +namespace TencentCloudIAC.PulumiPackage.Tencentcloud.Scf.Inputs +{ + + public sealed class CustomDomainWafConfigArgs : global::Pulumi.ResourceArgs + { + /// + /// Web Application Firewall Instance ID. + /// + [Input("wafInstanceId")] + public Input? WafInstanceId { get; set; } + + /// + /// Whether the Web Application Firewall is turned on, value range:OPEN, CLOSE. + /// + [Input("wafOpen")] + public Input? WafOpen { get; set; } + + public CustomDomainWafConfigArgs() + { + } + public static new CustomDomainWafConfigArgs Empty => new CustomDomainWafConfigArgs(); + } +} diff --git a/sdk/dotnet/Tencentcloud/Scf/Inputs/CustomDomainWafConfigGetArgs.cs b/sdk/dotnet/Tencentcloud/Scf/Inputs/CustomDomainWafConfigGetArgs.cs new file mode 100644 index 000000000..6aaccdd7a --- /dev/null +++ b/sdk/dotnet/Tencentcloud/Scf/Inputs/CustomDomainWafConfigGetArgs.cs @@ -0,0 +1,33 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; +using Pulumi; + +namespace TencentCloudIAC.PulumiPackage.Tencentcloud.Scf.Inputs +{ + + public sealed class CustomDomainWafConfigGetArgs : global::Pulumi.ResourceArgs + { + /// + /// Web Application Firewall Instance ID. + /// + [Input("wafInstanceId")] + public Input? WafInstanceId { get; set; } + + /// + /// Whether the Web Application Firewall is turned on, value range:OPEN, CLOSE. + /// + [Input("wafOpen")] + public Input? WafOpen { get; set; } + + public CustomDomainWafConfigGetArgs() + { + } + public static new CustomDomainWafConfigGetArgs Empty => new CustomDomainWafConfigGetArgs(); + } +} diff --git a/sdk/dotnet/Tencentcloud/Scf/Outputs/CustomDomainCertConfig.cs b/sdk/dotnet/Tencentcloud/Scf/Outputs/CustomDomainCertConfig.cs new file mode 100644 index 000000000..aeabedffc --- /dev/null +++ b/sdk/dotnet/Tencentcloud/Scf/Outputs/CustomDomainCertConfig.cs @@ -0,0 +1,28 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; +using Pulumi; + +namespace TencentCloudIAC.PulumiPackage.Tencentcloud.Scf.Outputs +{ + + [OutputType] + public sealed class CustomDomainCertConfig + { + /// + /// SSL Certificates ID. + /// + public readonly string? CertificateId; + + [OutputConstructor] + private CustomDomainCertConfig(string? certificateId) + { + CertificateId = certificateId; + } + } +} diff --git a/sdk/dotnet/Tencentcloud/Scf/Outputs/CustomDomainEndpointsConfig.cs b/sdk/dotnet/Tencentcloud/Scf/Outputs/CustomDomainEndpointsConfig.cs new file mode 100644 index 000000000..7b67475e7 --- /dev/null +++ b/sdk/dotnet/Tencentcloud/Scf/Outputs/CustomDomainEndpointsConfig.cs @@ -0,0 +1,57 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; +using Pulumi; + +namespace TencentCloudIAC.PulumiPackage.Tencentcloud.Scf.Outputs +{ + + [OutputType] + public sealed class CustomDomainEndpointsConfig + { + /// + /// Function name. + /// + public readonly string FunctionName; + /// + /// Function namespace. + /// + public readonly string Namespace; + /// + /// Path, value specification: /,/*,/xxx,/xxx/a,/xxx/*. + /// + public readonly string PathMatch; + /// + /// Path rewriting policy. + /// + public readonly ImmutableArray PathRewrites; + /// + /// Function alias or version. + /// + public readonly string Qualifier; + + [OutputConstructor] + private CustomDomainEndpointsConfig( + string functionName, + + string @namespace, + + string pathMatch, + + ImmutableArray pathRewrites, + + string qualifier) + { + FunctionName = functionName; + Namespace = @namespace; + PathMatch = pathMatch; + PathRewrites = pathRewrites; + Qualifier = qualifier; + } + } +} diff --git a/sdk/dotnet/Tencentcloud/Scf/Outputs/CustomDomainEndpointsConfigPathRewrite.cs b/sdk/dotnet/Tencentcloud/Scf/Outputs/CustomDomainEndpointsConfigPathRewrite.cs new file mode 100644 index 000000000..a6d4ffa3d --- /dev/null +++ b/sdk/dotnet/Tencentcloud/Scf/Outputs/CustomDomainEndpointsConfigPathRewrite.cs @@ -0,0 +1,43 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; +using Pulumi; + +namespace TencentCloudIAC.PulumiPackage.Tencentcloud.Scf.Outputs +{ + + [OutputType] + public sealed class CustomDomainEndpointsConfigPathRewrite + { + /// + /// Path that needs to be rerouted, value specification: /,/*,/xxx,/xxx/a,/xxx/*. + /// + public readonly string Path; + /// + /// Replacement values: such as/, /$. + /// + public readonly string Rewrite; + /// + /// Matching rules, value range: WildcardRules wildcard matching, ExactRules exact matching. + /// + public readonly string Type; + + [OutputConstructor] + private CustomDomainEndpointsConfigPathRewrite( + string path, + + string rewrite, + + string type) + { + Path = path; + Rewrite = rewrite; + Type = type; + } + } +} diff --git a/sdk/dotnet/Tencentcloud/Scf/Outputs/CustomDomainWafConfig.cs b/sdk/dotnet/Tencentcloud/Scf/Outputs/CustomDomainWafConfig.cs new file mode 100644 index 000000000..55915164f --- /dev/null +++ b/sdk/dotnet/Tencentcloud/Scf/Outputs/CustomDomainWafConfig.cs @@ -0,0 +1,36 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; +using Pulumi; + +namespace TencentCloudIAC.PulumiPackage.Tencentcloud.Scf.Outputs +{ + + [OutputType] + public sealed class CustomDomainWafConfig + { + /// + /// Web Application Firewall Instance ID. + /// + public readonly string? WafInstanceId; + /// + /// Whether the Web Application Firewall is turned on, value range:OPEN, CLOSE. + /// + public readonly string? WafOpen; + + [OutputConstructor] + private CustomDomainWafConfig( + string? wafInstanceId, + + string? wafOpen) + { + WafInstanceId = wafInstanceId; + WafOpen = wafOpen; + } + } +} diff --git a/sdk/dotnet/Tencentcloud/Vpn/Connection.cs b/sdk/dotnet/Tencentcloud/Vpn/Connection.cs index 222401bbe..489f47396 100644 --- a/sdk/dotnet/Tencentcloud/Vpn/Connection.cs +++ b/sdk/dotnet/Tencentcloud/Vpn/Connection.cs @@ -24,24 +24,36 @@ namespace TencentCloudIAC.PulumiPackage.Tencentcloud.Vpn /// /// return await Deployment.RunAsync(() => /// { - /// var foo = new Tencentcloud.Vpn.Connection("foo", new() + /// var example = new Tencentcloud.Vpn.Connection("example", new() /// { - /// CustomerGatewayId = "cgw-xfqag", + /// CustomerGatewayId = "cgw-e503id2z", + /// EnableHealthCheck = true, + /// HealthCheckConfig = new Tencentcloud.Vpn.Inputs.ConnectionHealthCheckConfigArgs + /// { + /// ProbeInterval = 5000, + /// ProbeThreshold = 3, + /// ProbeTimeout = 150, + /// ProbeType = "NQA", + /// }, + /// HealthCheckLocalIp = "169.254.227.187", + /// HealthCheckRemoteIp = "169.254.164.37", /// IkeDhGroupName = "GROUP2", /// IkeExchangeMode = "AGGRESSIVE", - /// IkeLocalAddress = "1.1.1.1", + /// IkeLocalAddress = "159.75.204.38", /// IkeLocalIdentity = "ADDRESS", /// IkeProtoAuthenAlgorithm = "SHA", /// IkeProtoEncryAlgorithm = "3DES-CBC", - /// IkeRemoteAddress = "2.2.2.2", + /// IkeRemoteAddress = "109.244.60.154", /// IkeRemoteIdentity = "ADDRESS", - /// IkeSaLifetimeSeconds = 86401, + /// IkeSaLifetimeSeconds = 86400, /// IpsecEncryptAlgorithm = "3DES-CBC", /// IpsecIntegrityAlgorithm = "SHA1", /// IpsecPfsDhGroup = "NULL", - /// IpsecSaLifetimeSeconds = 7200, - /// IpsecSaLifetimeTraffic = 2570, - /// PreShareKey = "testt", + /// IpsecSaLifetimeSeconds = 14400, + /// IpsecSaLifetimeTraffic = 4096000000, + /// NegotiationType = "flowTrigger", + /// PreShareKey = "your_pre_share_key", + /// RouteType = "StaticRoute", /// SecurityGroupPolicies = new[] /// { /// new Tencentcloud.Vpn.Inputs.ConnectionSecurityGroupPolicyArgs @@ -55,10 +67,10 @@ namespace TencentCloudIAC.PulumiPackage.Tencentcloud.Vpn /// }, /// Tags = /// { - /// { "test", "testt" }, + /// { "createBy", "Terraform" }, /// }, - /// VpcId = "vpc-dk8zmwuf", - /// VpnGatewayId = "vpngw-8ccsnclt", + /// VpcId = "vpc-6ccw0s5l", + /// VpnGatewayId = "vpngw-33p5vnwd", /// }); /// /// }); @@ -76,6 +88,12 @@ namespace TencentCloudIAC.PulumiPackage.Tencentcloud.Vpn [TencentcloudResourceType("tencentcloud:Vpn/connection:Connection")] public partial class Connection : global::Pulumi.CustomResource { + /// + /// BGP config. + /// + [Output("bgpConfig")] + public Output BgpConfig { get; private set; } = null!; + /// /// Create time of the VPN connection. /// @@ -118,6 +136,12 @@ public partial class Connection : global::Pulumi.CustomResource [Output("encryptProto")] public Output EncryptProto { get; private set; } = null!; + /// + /// VPN channel health check configuration. + /// + [Output("healthCheckConfig")] + public Output HealthCheckConfig { get; private set; } = null!; + /// /// Health check the address of this terminal. /// @@ -244,6 +268,12 @@ public partial class Connection : global::Pulumi.CustomResource [Output("name")] public Output Name { get; private set; } = null!; + /// + /// The default negotiation type is `active`. Optional values: `active` (active negotiation), `passive` (passive negotiation), `flowTrigger` (traffic negotiation). + /// + [Output("negotiationType")] + public Output NegotiationType { get; private set; } = null!; + /// /// Net status of the VPN connection. Valid value: `AVAILABLE`. /// @@ -257,7 +287,7 @@ public partial class Connection : global::Pulumi.CustomResource public Output PreShareKey { get; private set; } = null!; /// - /// Route type of the VPN connection. Valid value: `STATIC`, `StaticRoute`, `Policy`. + /// Route type of the VPN connection. Valid value: `STATIC`, `StaticRoute`, `Policy`, `Bgp`. /// [Output("routeType")] public Output RouteType { get; private set; } = null!; @@ -345,6 +375,12 @@ public static Connection Get(string name, Input id, ConnectionState? sta public sealed class ConnectionArgs : global::Pulumi.ResourceArgs { + /// + /// BGP config. + /// + [Input("bgpConfig")] + public Input? BgpConfig { get; set; } + /// /// ID of the customer gateway. /// @@ -375,6 +411,12 @@ public sealed class ConnectionArgs : global::Pulumi.ResourceArgs [Input("enableHealthCheck")] public Input? EnableHealthCheck { get; set; } + /// + /// VPN channel health check configuration. + /// + [Input("healthCheckConfig")] + public Input? HealthCheckConfig { get; set; } + /// /// Health check the address of this terminal. /// @@ -495,6 +537,12 @@ public sealed class ConnectionArgs : global::Pulumi.ResourceArgs [Input("name")] public Input? Name { get; set; } + /// + /// The default negotiation type is `active`. Optional values: `active` (active negotiation), `passive` (passive negotiation), `flowTrigger` (traffic negotiation). + /// + [Input("negotiationType")] + public Input? NegotiationType { get; set; } + /// /// Pre-shared key of the VPN connection. /// @@ -502,7 +550,7 @@ public sealed class ConnectionArgs : global::Pulumi.ResourceArgs public Input PreShareKey { get; set; } = null!; /// - /// Route type of the VPN connection. Valid value: `STATIC`, `StaticRoute`, `Policy`. + /// Route type of the VPN connection. Valid value: `STATIC`, `StaticRoute`, `Policy`, `Bgp`. /// [Input("routeType")] public Input? RouteType { get; set; } @@ -551,6 +599,12 @@ public ConnectionArgs() public sealed class ConnectionState : global::Pulumi.ResourceArgs { + /// + /// BGP config. + /// + [Input("bgpConfig")] + public Input? BgpConfig { get; set; } + /// /// Create time of the VPN connection. /// @@ -593,6 +647,12 @@ public sealed class ConnectionState : global::Pulumi.ResourceArgs [Input("encryptProto")] public Input? EncryptProto { get; set; } + /// + /// VPN channel health check configuration. + /// + [Input("healthCheckConfig")] + public Input? HealthCheckConfig { get; set; } + /// /// Health check the address of this terminal. /// @@ -719,6 +779,12 @@ public sealed class ConnectionState : global::Pulumi.ResourceArgs [Input("name")] public Input? Name { get; set; } + /// + /// The default negotiation type is `active`. Optional values: `active` (active negotiation), `passive` (passive negotiation), `flowTrigger` (traffic negotiation). + /// + [Input("negotiationType")] + public Input? NegotiationType { get; set; } + /// /// Net status of the VPN connection. Valid value: `AVAILABLE`. /// @@ -732,7 +798,7 @@ public sealed class ConnectionState : global::Pulumi.ResourceArgs public Input? PreShareKey { get; set; } /// - /// Route type of the VPN connection. Valid value: `STATIC`, `StaticRoute`, `Policy`. + /// Route type of the VPN connection. Valid value: `STATIC`, `StaticRoute`, `Policy`, `Bgp`. /// [Input("routeType")] public Input? RouteType { get; set; } diff --git a/sdk/dotnet/Tencentcloud/Vpn/Inputs/ConnectionBgpConfigArgs.cs b/sdk/dotnet/Tencentcloud/Vpn/Inputs/ConnectionBgpConfigArgs.cs new file mode 100644 index 000000000..d32603248 --- /dev/null +++ b/sdk/dotnet/Tencentcloud/Vpn/Inputs/ConnectionBgpConfigArgs.cs @@ -0,0 +1,39 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; +using Pulumi; + +namespace TencentCloudIAC.PulumiPackage.Tencentcloud.Vpn.Inputs +{ + + public sealed class ConnectionBgpConfigArgs : global::Pulumi.ResourceArgs + { + /// + /// Cloud BGP address. It must be allocated from within the BGP tunnel network segment. + /// + [Input("localBgpIp", required: true)] + public Input LocalBgpIp { get; set; } = null!; + + /// + /// User side BGP address. It must be allocated from within the BGP tunnel network segment. + /// + [Input("remoteBgpIp", required: true)] + public Input RemoteBgpIp { get; set; } = null!; + + /// + /// BGP tunnel segment. + /// + [Input("tunnelCidr", required: true)] + public Input TunnelCidr { get; set; } = null!; + + public ConnectionBgpConfigArgs() + { + } + public static new ConnectionBgpConfigArgs Empty => new ConnectionBgpConfigArgs(); + } +} diff --git a/sdk/dotnet/Tencentcloud/Vpn/Inputs/ConnectionBgpConfigGetArgs.cs b/sdk/dotnet/Tencentcloud/Vpn/Inputs/ConnectionBgpConfigGetArgs.cs new file mode 100644 index 000000000..3b4d047a3 --- /dev/null +++ b/sdk/dotnet/Tencentcloud/Vpn/Inputs/ConnectionBgpConfigGetArgs.cs @@ -0,0 +1,39 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; +using Pulumi; + +namespace TencentCloudIAC.PulumiPackage.Tencentcloud.Vpn.Inputs +{ + + public sealed class ConnectionBgpConfigGetArgs : global::Pulumi.ResourceArgs + { + /// + /// Cloud BGP address. It must be allocated from within the BGP tunnel network segment. + /// + [Input("localBgpIp", required: true)] + public Input LocalBgpIp { get; set; } = null!; + + /// + /// User side BGP address. It must be allocated from within the BGP tunnel network segment. + /// + [Input("remoteBgpIp", required: true)] + public Input RemoteBgpIp { get; set; } = null!; + + /// + /// BGP tunnel segment. + /// + [Input("tunnelCidr", required: true)] + public Input TunnelCidr { get; set; } = null!; + + public ConnectionBgpConfigGetArgs() + { + } + public static new ConnectionBgpConfigGetArgs Empty => new ConnectionBgpConfigGetArgs(); + } +} diff --git a/sdk/dotnet/Tencentcloud/Vpn/Inputs/ConnectionHealthCheckConfigArgs.cs b/sdk/dotnet/Tencentcloud/Vpn/Inputs/ConnectionHealthCheckConfigArgs.cs new file mode 100644 index 000000000..8127094e3 --- /dev/null +++ b/sdk/dotnet/Tencentcloud/Vpn/Inputs/ConnectionHealthCheckConfigArgs.cs @@ -0,0 +1,45 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; +using Pulumi; + +namespace TencentCloudIAC.PulumiPackage.Tencentcloud.Vpn.Inputs +{ + + public sealed class ConnectionHealthCheckConfigArgs : global::Pulumi.ResourceArgs + { + /// + /// Detection interval, Tencent Cloud's interval between two health checks, range [1000-5000], Unit: ms. + /// + [Input("probeInterval")] + public Input? ProbeInterval { get; set; } + + /// + /// Detection times, perform route switching after N consecutive health check failures, range [3-8], Unit: times. + /// + [Input("probeThreshold")] + public Input? ProbeThreshold { get; set; } + + /// + /// Detection timeout, range [10-5000], Unit: ms. + /// + [Input("probeTimeout")] + public Input? ProbeTimeout { get; set; } + + /// + /// Detection mode, default is `NQA`, cannot be modified. + /// + [Input("probeType")] + public Input? ProbeType { get; set; } + + public ConnectionHealthCheckConfigArgs() + { + } + public static new ConnectionHealthCheckConfigArgs Empty => new ConnectionHealthCheckConfigArgs(); + } +} diff --git a/sdk/dotnet/Tencentcloud/Vpn/Inputs/ConnectionHealthCheckConfigGetArgs.cs b/sdk/dotnet/Tencentcloud/Vpn/Inputs/ConnectionHealthCheckConfigGetArgs.cs new file mode 100644 index 000000000..5ac5150f4 --- /dev/null +++ b/sdk/dotnet/Tencentcloud/Vpn/Inputs/ConnectionHealthCheckConfigGetArgs.cs @@ -0,0 +1,45 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; +using Pulumi; + +namespace TencentCloudIAC.PulumiPackage.Tencentcloud.Vpn.Inputs +{ + + public sealed class ConnectionHealthCheckConfigGetArgs : global::Pulumi.ResourceArgs + { + /// + /// Detection interval, Tencent Cloud's interval between two health checks, range [1000-5000], Unit: ms. + /// + [Input("probeInterval")] + public Input? ProbeInterval { get; set; } + + /// + /// Detection times, perform route switching after N consecutive health check failures, range [3-8], Unit: times. + /// + [Input("probeThreshold")] + public Input? ProbeThreshold { get; set; } + + /// + /// Detection timeout, range [10-5000], Unit: ms. + /// + [Input("probeTimeout")] + public Input? ProbeTimeout { get; set; } + + /// + /// Detection mode, default is `NQA`, cannot be modified. + /// + [Input("probeType")] + public Input? ProbeType { get; set; } + + public ConnectionHealthCheckConfigGetArgs() + { + } + public static new ConnectionHealthCheckConfigGetArgs Empty => new ConnectionHealthCheckConfigGetArgs(); + } +} diff --git a/sdk/dotnet/Tencentcloud/Vpn/Outputs/ConnectionBgpConfig.cs b/sdk/dotnet/Tencentcloud/Vpn/Outputs/ConnectionBgpConfig.cs new file mode 100644 index 000000000..143738b50 --- /dev/null +++ b/sdk/dotnet/Tencentcloud/Vpn/Outputs/ConnectionBgpConfig.cs @@ -0,0 +1,43 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; +using Pulumi; + +namespace TencentCloudIAC.PulumiPackage.Tencentcloud.Vpn.Outputs +{ + + [OutputType] + public sealed class ConnectionBgpConfig + { + /// + /// Cloud BGP address. It must be allocated from within the BGP tunnel network segment. + /// + public readonly string LocalBgpIp; + /// + /// User side BGP address. It must be allocated from within the BGP tunnel network segment. + /// + public readonly string RemoteBgpIp; + /// + /// BGP tunnel segment. + /// + public readonly string TunnelCidr; + + [OutputConstructor] + private ConnectionBgpConfig( + string localBgpIp, + + string remoteBgpIp, + + string tunnelCidr) + { + LocalBgpIp = localBgpIp; + RemoteBgpIp = remoteBgpIp; + TunnelCidr = tunnelCidr; + } + } +} diff --git a/sdk/dotnet/Tencentcloud/Vpn/Outputs/ConnectionHealthCheckConfig.cs b/sdk/dotnet/Tencentcloud/Vpn/Outputs/ConnectionHealthCheckConfig.cs new file mode 100644 index 000000000..3f08f3896 --- /dev/null +++ b/sdk/dotnet/Tencentcloud/Vpn/Outputs/ConnectionHealthCheckConfig.cs @@ -0,0 +1,50 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System; +using System.Collections.Generic; +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; +using Pulumi; + +namespace TencentCloudIAC.PulumiPackage.Tencentcloud.Vpn.Outputs +{ + + [OutputType] + public sealed class ConnectionHealthCheckConfig + { + /// + /// Detection interval, Tencent Cloud's interval between two health checks, range [1000-5000], Unit: ms. + /// + public readonly int? ProbeInterval; + /// + /// Detection times, perform route switching after N consecutive health check failures, range [3-8], Unit: times. + /// + public readonly int? ProbeThreshold; + /// + /// Detection timeout, range [10-5000], Unit: ms. + /// + public readonly int? ProbeTimeout; + /// + /// Detection mode, default is `NQA`, cannot be modified. + /// + public readonly string? ProbeType; + + [OutputConstructor] + private ConnectionHealthCheckConfig( + int? probeInterval, + + int? probeThreshold, + + int? probeTimeout, + + string? probeType) + { + ProbeInterval = probeInterval; + ProbeThreshold = probeThreshold; + ProbeTimeout = probeTimeout; + ProbeType = probeType; + } + } +} diff --git a/sdk/go/tencentcloud/as/scalingConfig.go b/sdk/go/tencentcloud/as/scalingConfig.go index 4c8eacf7c..c6d1a1cad 100644 --- a/sdk/go/tencentcloud/as/scalingConfig.go +++ b/sdk/go/tencentcloud/as/scalingConfig.go @@ -18,6 +18,8 @@ import ( // // ## Example Usage // +// ### Create a normal configuration +// // // ```go // package main @@ -36,16 +38,16 @@ import ( // ImageTypes: []string{ // "PUBLIC_IMAGE", // }, -// OsName: pulumi.StringRef("TencentOS Server 3.2 (Final)"), +// OsName: pulumi.StringRef("TencentOS Server 4 for x86_64"), // }, nil) // if err != nil { // return err // } // _, err = As.NewScalingConfig(ctx, "exampleScalingConfig", &As.ScalingConfigArgs{ -// ConfigurationName: pulumi.String("example-launch-configuration"), +// ConfigurationName: pulumi.String("tf-example"), // ImageId: pulumi.String(exampleInstance.Images[0].ImageId), // InstanceTypes: pulumi.StringArray{ -// pulumi.String("SA1.SMALL1"), +// pulumi.String("SA5.MEDIUM4"), // }, // ProjectId: pulumi.Int(0), // SystemDiskType: pulumi.String("CLOUD_PREMIUM"), @@ -65,7 +67,7 @@ import ( // EnhancedAutomationToolsService: pulumi.Bool(false), // UserData: pulumi.String("dGVzdA=="), // HostNameSettings: &as.ScalingConfigHostNameSettingsArgs{ -// HostName: pulumi.String("host-name-test"), +// HostName: pulumi.String("host-name"), // HostNameStyle: pulumi.String("UNIQUE"), // }, // InstanceTags: pulumi.Map{ @@ -102,16 +104,16 @@ import ( // ImageTypes: []string{ // "PUBLIC_IMAGE", // }, -// OsName: pulumi.StringRef("TencentOS Server 3.2 (Final)"), +// OsName: pulumi.StringRef("TencentOS Server 4 for x86_64"), // }, nil) // if err != nil { // return err // } // _, err = As.NewScalingConfig(ctx, "exampleScalingConfig", &As.ScalingConfigArgs{ -// ConfigurationName: pulumi.String("launch-configuration"), +// ConfigurationName: pulumi.String("tf-example"), // ImageId: pulumi.String(exampleInstance.Images[0].ImageId), // InstanceTypes: pulumi.StringArray{ -// pulumi.String("SA1.SMALL1"), +// pulumi.String("SA5.MEDIUM4"), // }, // InstanceChargeType: pulumi.String("SPOTPAID"), // SpotInstanceType: pulumi.String("one-time"), @@ -174,6 +176,74 @@ import ( // ``` // // +// ### Create a CDC configuration +// +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// "github.com/tencentcloudstack/pulumi-tencentcloud/sdk/go/tencentcloud/As" +// "github.com/tencentcloudstack/pulumi-tencentcloud/sdk/go/tencentcloud/Images" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// exampleInstance, err := Images.GetInstance(ctx, &images.GetInstanceArgs{ +// ImageTypes: []string{ +// "PUBLIC_IMAGE", +// }, +// OsName: pulumi.StringRef("TencentOS Server 4 for x86_64"), +// }, nil) +// if err != nil { +// return err +// } +// _, err = As.NewScalingConfig(ctx, "exampleScalingConfig", &As.ScalingConfigArgs{ +// ConfigurationName: pulumi.String("tf-example"), +// ImageId: pulumi.String(exampleInstance.Images[0].ImageId), +// InstanceTypes: pulumi.StringArray{ +// pulumi.String("SA5.MEDIUM4"), +// }, +// ProjectId: pulumi.Int(0), +// SystemDiskType: pulumi.String("CLOUD_PREMIUM"), +// SystemDiskSize: pulumi.Int(50), +// InstanceChargeType: pulumi.String("CDCPAID"), +// DedicatedClusterId: pulumi.String("cluster-262n63e8"), +// DataDisks: as.ScalingConfigDataDiskArray{ +// &as.ScalingConfigDataDiskArgs{ +// DiskType: pulumi.String("CLOUD_PREMIUM"), +// DiskSize: pulumi.Int(50), +// }, +// }, +// InternetChargeType: pulumi.String("TRAFFIC_POSTPAID_BY_HOUR"), +// InternetMaxBandwidthOut: pulumi.Int(10), +// PublicIpAssigned: pulumi.Bool(true), +// Password: pulumi.String("Test@123#"), +// EnhancedSecurityService: pulumi.Bool(false), +// EnhancedMonitorService: pulumi.Bool(false), +// EnhancedAutomationToolsService: pulumi.Bool(false), +// UserData: pulumi.String("dGVzdA=="), +// HostNameSettings: &as.ScalingConfigHostNameSettingsArgs{ +// HostName: pulumi.String("host-name"), +// HostNameStyle: pulumi.String("UNIQUE"), +// }, +// InstanceTags: pulumi.Map{ +// "tag": pulumi.Any("example"), +// }, +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// +// // ## Import // // AutoScaling Configuration can be imported using the id, e.g. @@ -192,6 +262,8 @@ type ScalingConfig struct { CreateTime pulumi.StringOutput `pulumi:"createTime"` // Configurations of data disk. DataDisks ScalingConfigDataDiskArrayOutput `pulumi:"dataDisks"` + // Dedicated Cluster ID. + DedicatedClusterId pulumi.StringPtrOutput `pulumi:"dedicatedClusterId"` // Policy of cloud disk type. Valid values: `ORIGINAL` and `AUTOMATIC`. Default is `ORIGINAL`. DiskTypePolicy pulumi.StringPtrOutput `pulumi:"diskTypePolicy"` // To specify whether to enable cloud automation tools service. @@ -206,7 +278,7 @@ type ScalingConfig struct { ImageFamily pulumi.StringPtrOutput `pulumi:"imageFamily"` // An available image ID for a cvm instance. ImageId pulumi.StringPtrOutput `pulumi:"imageId"` - // Charge type of instance. Valid values are `PREPAID`, `POSTPAID_BY_HOUR`, `SPOTPAID`. The default is `POSTPAID_BY_HOUR`. NOTE: `SPOTPAID` instance must set `spotInstanceType` and `spotMaxPrice` at the same time. + // Charge type of instance. Valid values are `PREPAID`, `POSTPAID_BY_HOUR`, `SPOTPAID`, `CDCPAID`. The default is `POSTPAID_BY_HOUR`. NOTE: `SPOTPAID` instance must set `spotInstanceType` and `spotMaxPrice` at the same time. InstanceChargeType pulumi.StringPtrOutput `pulumi:"instanceChargeType"` // The tenancy (in month) of the prepaid instance, NOTE: it only works when instanceChargeType is set to `PREPAID`. Valid values are `1`, `2`, `3`, `4`, `5`, `6`, `7`, `8`, `9`, `10`, `11`, `12`, `24`, `36`. InstanceChargeTypePrepaidPeriod pulumi.IntPtrOutput `pulumi:"instanceChargeTypePrepaidPeriod"` @@ -299,6 +371,8 @@ type scalingConfigState struct { CreateTime *string `pulumi:"createTime"` // Configurations of data disk. DataDisks []ScalingConfigDataDisk `pulumi:"dataDisks"` + // Dedicated Cluster ID. + DedicatedClusterId *string `pulumi:"dedicatedClusterId"` // Policy of cloud disk type. Valid values: `ORIGINAL` and `AUTOMATIC`. Default is `ORIGINAL`. DiskTypePolicy *string `pulumi:"diskTypePolicy"` // To specify whether to enable cloud automation tools service. @@ -313,7 +387,7 @@ type scalingConfigState struct { ImageFamily *string `pulumi:"imageFamily"` // An available image ID for a cvm instance. ImageId *string `pulumi:"imageId"` - // Charge type of instance. Valid values are `PREPAID`, `POSTPAID_BY_HOUR`, `SPOTPAID`. The default is `POSTPAID_BY_HOUR`. NOTE: `SPOTPAID` instance must set `spotInstanceType` and `spotMaxPrice` at the same time. + // Charge type of instance. Valid values are `PREPAID`, `POSTPAID_BY_HOUR`, `SPOTPAID`, `CDCPAID`. The default is `POSTPAID_BY_HOUR`. NOTE: `SPOTPAID` instance must set `spotInstanceType` and `spotMaxPrice` at the same time. InstanceChargeType *string `pulumi:"instanceChargeType"` // The tenancy (in month) of the prepaid instance, NOTE: it only works when instanceChargeType is set to `PREPAID`. Valid values are `1`, `2`, `3`, `4`, `5`, `6`, `7`, `8`, `9`, `10`, `11`, `12`, `24`, `36`. InstanceChargeTypePrepaidPeriod *int `pulumi:"instanceChargeTypePrepaidPeriod"` @@ -364,6 +438,8 @@ type ScalingConfigState struct { CreateTime pulumi.StringPtrInput // Configurations of data disk. DataDisks ScalingConfigDataDiskArrayInput + // Dedicated Cluster ID. + DedicatedClusterId pulumi.StringPtrInput // Policy of cloud disk type. Valid values: `ORIGINAL` and `AUTOMATIC`. Default is `ORIGINAL`. DiskTypePolicy pulumi.StringPtrInput // To specify whether to enable cloud automation tools service. @@ -378,7 +454,7 @@ type ScalingConfigState struct { ImageFamily pulumi.StringPtrInput // An available image ID for a cvm instance. ImageId pulumi.StringPtrInput - // Charge type of instance. Valid values are `PREPAID`, `POSTPAID_BY_HOUR`, `SPOTPAID`. The default is `POSTPAID_BY_HOUR`. NOTE: `SPOTPAID` instance must set `spotInstanceType` and `spotMaxPrice` at the same time. + // Charge type of instance. Valid values are `PREPAID`, `POSTPAID_BY_HOUR`, `SPOTPAID`, `CDCPAID`. The default is `POSTPAID_BY_HOUR`. NOTE: `SPOTPAID` instance must set `spotInstanceType` and `spotMaxPrice` at the same time. InstanceChargeType pulumi.StringPtrInput // The tenancy (in month) of the prepaid instance, NOTE: it only works when instanceChargeType is set to `PREPAID`. Valid values are `1`, `2`, `3`, `4`, `5`, `6`, `7`, `8`, `9`, `10`, `11`, `12`, `24`, `36`. InstanceChargeTypePrepaidPeriod pulumi.IntPtrInput @@ -431,6 +507,8 @@ type scalingConfigArgs struct { ConfigurationName string `pulumi:"configurationName"` // Configurations of data disk. DataDisks []ScalingConfigDataDisk `pulumi:"dataDisks"` + // Dedicated Cluster ID. + DedicatedClusterId *string `pulumi:"dedicatedClusterId"` // Policy of cloud disk type. Valid values: `ORIGINAL` and `AUTOMATIC`. Default is `ORIGINAL`. DiskTypePolicy *string `pulumi:"diskTypePolicy"` // To specify whether to enable cloud automation tools service. @@ -445,7 +523,7 @@ type scalingConfigArgs struct { ImageFamily *string `pulumi:"imageFamily"` // An available image ID for a cvm instance. ImageId *string `pulumi:"imageId"` - // Charge type of instance. Valid values are `PREPAID`, `POSTPAID_BY_HOUR`, `SPOTPAID`. The default is `POSTPAID_BY_HOUR`. NOTE: `SPOTPAID` instance must set `spotInstanceType` and `spotMaxPrice` at the same time. + // Charge type of instance. Valid values are `PREPAID`, `POSTPAID_BY_HOUR`, `SPOTPAID`, `CDCPAID`. The default is `POSTPAID_BY_HOUR`. NOTE: `SPOTPAID` instance must set `spotInstanceType` and `spotMaxPrice` at the same time. InstanceChargeType *string `pulumi:"instanceChargeType"` // The tenancy (in month) of the prepaid instance, NOTE: it only works when instanceChargeType is set to `PREPAID`. Valid values are `1`, `2`, `3`, `4`, `5`, `6`, `7`, `8`, `9`, `10`, `11`, `12`, `24`, `36`. InstanceChargeTypePrepaidPeriod *int `pulumi:"instanceChargeTypePrepaidPeriod"` @@ -493,6 +571,8 @@ type ScalingConfigArgs struct { ConfigurationName pulumi.StringInput // Configurations of data disk. DataDisks ScalingConfigDataDiskArrayInput + // Dedicated Cluster ID. + DedicatedClusterId pulumi.StringPtrInput // Policy of cloud disk type. Valid values: `ORIGINAL` and `AUTOMATIC`. Default is `ORIGINAL`. DiskTypePolicy pulumi.StringPtrInput // To specify whether to enable cloud automation tools service. @@ -507,7 +587,7 @@ type ScalingConfigArgs struct { ImageFamily pulumi.StringPtrInput // An available image ID for a cvm instance. ImageId pulumi.StringPtrInput - // Charge type of instance. Valid values are `PREPAID`, `POSTPAID_BY_HOUR`, `SPOTPAID`. The default is `POSTPAID_BY_HOUR`. NOTE: `SPOTPAID` instance must set `spotInstanceType` and `spotMaxPrice` at the same time. + // Charge type of instance. Valid values are `PREPAID`, `POSTPAID_BY_HOUR`, `SPOTPAID`, `CDCPAID`. The default is `POSTPAID_BY_HOUR`. NOTE: `SPOTPAID` instance must set `spotInstanceType` and `spotMaxPrice` at the same time. InstanceChargeType pulumi.StringPtrInput // The tenancy (in month) of the prepaid instance, NOTE: it only works when instanceChargeType is set to `PREPAID`. Valid values are `1`, `2`, `3`, `4`, `5`, `6`, `7`, `8`, `9`, `10`, `11`, `12`, `24`, `36`. InstanceChargeTypePrepaidPeriod pulumi.IntPtrInput @@ -654,6 +734,11 @@ func (o ScalingConfigOutput) DataDisks() ScalingConfigDataDiskArrayOutput { return o.ApplyT(func(v *ScalingConfig) ScalingConfigDataDiskArrayOutput { return v.DataDisks }).(ScalingConfigDataDiskArrayOutput) } +// Dedicated Cluster ID. +func (o ScalingConfigOutput) DedicatedClusterId() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ScalingConfig) pulumi.StringPtrOutput { return v.DedicatedClusterId }).(pulumi.StringPtrOutput) +} + // Policy of cloud disk type. Valid values: `ORIGINAL` and `AUTOMATIC`. Default is `ORIGINAL`. func (o ScalingConfigOutput) DiskTypePolicy() pulumi.StringPtrOutput { return o.ApplyT(func(v *ScalingConfig) pulumi.StringPtrOutput { return v.DiskTypePolicy }).(pulumi.StringPtrOutput) @@ -689,7 +774,7 @@ func (o ScalingConfigOutput) ImageId() pulumi.StringPtrOutput { return o.ApplyT(func(v *ScalingConfig) pulumi.StringPtrOutput { return v.ImageId }).(pulumi.StringPtrOutput) } -// Charge type of instance. Valid values are `PREPAID`, `POSTPAID_BY_HOUR`, `SPOTPAID`. The default is `POSTPAID_BY_HOUR`. NOTE: `SPOTPAID` instance must set `spotInstanceType` and `spotMaxPrice` at the same time. +// Charge type of instance. Valid values are `PREPAID`, `POSTPAID_BY_HOUR`, `SPOTPAID`, `CDCPAID`. The default is `POSTPAID_BY_HOUR`. NOTE: `SPOTPAID` instance must set `spotInstanceType` and `spotMaxPrice` at the same time. func (o ScalingConfigOutput) InstanceChargeType() pulumi.StringPtrOutput { return o.ApplyT(func(v *ScalingConfig) pulumi.StringPtrOutput { return v.InstanceChargeType }).(pulumi.StringPtrOutput) } diff --git a/sdk/go/tencentcloud/clb/listenerRule.go b/sdk/go/tencentcloud/clb/listenerRule.go index 532a0b8b7..bd4ed1a8d 100644 --- a/sdk/go/tencentcloud/clb/listenerRule.go +++ b/sdk/go/tencentcloud/clb/listenerRule.go @@ -153,6 +153,8 @@ type ListenerRule struct { Http2Switch pulumi.BoolOutput `pulumi:"http2Switch"` // ID of CLB listener. ListenerId pulumi.StringOutput `pulumi:"listenerId"` + // OAuth configuration information. + Oauth ListenerRuleOauthOutput `pulumi:"oauth"` // Whether to enable QUIC. Note: QUIC can be enabled only for HTTPS domain names. Quic pulumi.BoolOutput `pulumi:"quic"` // ID of this CLB listener rule. @@ -244,6 +246,8 @@ type listenerRuleState struct { Http2Switch *bool `pulumi:"http2Switch"` // ID of CLB listener. ListenerId *string `pulumi:"listenerId"` + // OAuth configuration information. + Oauth *ListenerRuleOauth `pulumi:"oauth"` // Whether to enable QUIC. Note: QUIC can be enabled only for HTTPS domain names. Quic *bool `pulumi:"quic"` // ID of this CLB listener rule. @@ -297,6 +301,8 @@ type ListenerRuleState struct { Http2Switch pulumi.BoolPtrInput // ID of CLB listener. ListenerId pulumi.StringPtrInput + // OAuth configuration information. + Oauth ListenerRuleOauthPtrInput // Whether to enable QUIC. Note: QUIC can be enabled only for HTTPS domain names. Quic pulumi.BoolPtrInput // ID of this CLB listener rule. @@ -354,6 +360,8 @@ type listenerRuleArgs struct { Http2Switch *bool `pulumi:"http2Switch"` // ID of CLB listener. ListenerId string `pulumi:"listenerId"` + // OAuth configuration information. + Oauth *ListenerRuleOauth `pulumi:"oauth"` // Whether to enable QUIC. Note: QUIC can be enabled only for HTTPS domain names. Quic *bool `pulumi:"quic"` // Scheduling method of the CLB listener rules. Valid values: `WRR`, `IP HASH`, `LEAST_CONN`. The default is `WRR`. NOTES: TCP/UDP/TCP_SSL listener allows direct configuration, HTTP/HTTPS listener needs to be configured in `Clb.ListenerRule`. @@ -406,6 +414,8 @@ type ListenerRuleArgs struct { Http2Switch pulumi.BoolPtrInput // ID of CLB listener. ListenerId pulumi.StringInput + // OAuth configuration information. + Oauth ListenerRuleOauthPtrInput // Whether to enable QUIC. Note: QUIC can be enabled only for HTTPS domain names. Quic pulumi.BoolPtrInput // Scheduling method of the CLB listener rules. Valid values: `WRR`, `IP HASH`, `LEAST_CONN`. The default is `WRR`. NOTES: TCP/UDP/TCP_SSL listener allows direct configuration, HTTP/HTTPS listener needs to be configured in `Clb.ListenerRule`. @@ -600,6 +610,11 @@ func (o ListenerRuleOutput) ListenerId() pulumi.StringOutput { return o.ApplyT(func(v *ListenerRule) pulumi.StringOutput { return v.ListenerId }).(pulumi.StringOutput) } +// OAuth configuration information. +func (o ListenerRuleOutput) Oauth() ListenerRuleOauthOutput { + return o.ApplyT(func(v *ListenerRule) ListenerRuleOauthOutput { return v.Oauth }).(ListenerRuleOauthOutput) +} + // Whether to enable QUIC. Note: QUIC can be enabled only for HTTPS domain names. func (o ListenerRuleOutput) Quic() pulumi.BoolOutput { return o.ApplyT(func(v *ListenerRule) pulumi.BoolOutput { return v.Quic }).(pulumi.BoolOutput) diff --git a/sdk/go/tencentcloud/clb/pulumiTypes.go b/sdk/go/tencentcloud/clb/pulumiTypes.go index b79763850..6c658219d 100644 --- a/sdk/go/tencentcloud/clb/pulumiTypes.go +++ b/sdk/go/tencentcloud/clb/pulumiTypes.go @@ -595,6 +595,162 @@ func (o InstanceSnatIpArrayOutput) Index(i pulumi.IntInput) InstanceSnatIpOutput }).(InstanceSnatIpOutput) } +type ListenerRuleOauth struct { + // Enable or disable authentication. True: Enabled; False: Disabled. + OauthEnable *bool `pulumi:"oauthEnable"` + // After all IAPs fail, the request is rejected or released. BYPASS: PASS; REJECT: Reject. + OauthFailureStatus *string `pulumi:"oauthFailureStatus"` +} + +// ListenerRuleOauthInput is an input type that accepts ListenerRuleOauthArgs and ListenerRuleOauthOutput values. +// You can construct a concrete instance of `ListenerRuleOauthInput` via: +// +// ListenerRuleOauthArgs{...} +type ListenerRuleOauthInput interface { + pulumi.Input + + ToListenerRuleOauthOutput() ListenerRuleOauthOutput + ToListenerRuleOauthOutputWithContext(context.Context) ListenerRuleOauthOutput +} + +type ListenerRuleOauthArgs struct { + // Enable or disable authentication. True: Enabled; False: Disabled. + OauthEnable pulumi.BoolPtrInput `pulumi:"oauthEnable"` + // After all IAPs fail, the request is rejected or released. BYPASS: PASS; REJECT: Reject. + OauthFailureStatus pulumi.StringPtrInput `pulumi:"oauthFailureStatus"` +} + +func (ListenerRuleOauthArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ListenerRuleOauth)(nil)).Elem() +} + +func (i ListenerRuleOauthArgs) ToListenerRuleOauthOutput() ListenerRuleOauthOutput { + return i.ToListenerRuleOauthOutputWithContext(context.Background()) +} + +func (i ListenerRuleOauthArgs) ToListenerRuleOauthOutputWithContext(ctx context.Context) ListenerRuleOauthOutput { + return pulumi.ToOutputWithContext(ctx, i).(ListenerRuleOauthOutput) +} + +func (i ListenerRuleOauthArgs) ToListenerRuleOauthPtrOutput() ListenerRuleOauthPtrOutput { + return i.ToListenerRuleOauthPtrOutputWithContext(context.Background()) +} + +func (i ListenerRuleOauthArgs) ToListenerRuleOauthPtrOutputWithContext(ctx context.Context) ListenerRuleOauthPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ListenerRuleOauthOutput).ToListenerRuleOauthPtrOutputWithContext(ctx) +} + +// ListenerRuleOauthPtrInput is an input type that accepts ListenerRuleOauthArgs, ListenerRuleOauthPtr and ListenerRuleOauthPtrOutput values. +// You can construct a concrete instance of `ListenerRuleOauthPtrInput` via: +// +// ListenerRuleOauthArgs{...} +// +// or: +// +// nil +type ListenerRuleOauthPtrInput interface { + pulumi.Input + + ToListenerRuleOauthPtrOutput() ListenerRuleOauthPtrOutput + ToListenerRuleOauthPtrOutputWithContext(context.Context) ListenerRuleOauthPtrOutput +} + +type listenerRuleOauthPtrType ListenerRuleOauthArgs + +func ListenerRuleOauthPtr(v *ListenerRuleOauthArgs) ListenerRuleOauthPtrInput { + return (*listenerRuleOauthPtrType)(v) +} + +func (*listenerRuleOauthPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**ListenerRuleOauth)(nil)).Elem() +} + +func (i *listenerRuleOauthPtrType) ToListenerRuleOauthPtrOutput() ListenerRuleOauthPtrOutput { + return i.ToListenerRuleOauthPtrOutputWithContext(context.Background()) +} + +func (i *listenerRuleOauthPtrType) ToListenerRuleOauthPtrOutputWithContext(ctx context.Context) ListenerRuleOauthPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ListenerRuleOauthPtrOutput) +} + +type ListenerRuleOauthOutput struct{ *pulumi.OutputState } + +func (ListenerRuleOauthOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ListenerRuleOauth)(nil)).Elem() +} + +func (o ListenerRuleOauthOutput) ToListenerRuleOauthOutput() ListenerRuleOauthOutput { + return o +} + +func (o ListenerRuleOauthOutput) ToListenerRuleOauthOutputWithContext(ctx context.Context) ListenerRuleOauthOutput { + return o +} + +func (o ListenerRuleOauthOutput) ToListenerRuleOauthPtrOutput() ListenerRuleOauthPtrOutput { + return o.ToListenerRuleOauthPtrOutputWithContext(context.Background()) +} + +func (o ListenerRuleOauthOutput) ToListenerRuleOauthPtrOutputWithContext(ctx context.Context) ListenerRuleOauthPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v ListenerRuleOauth) *ListenerRuleOauth { + return &v + }).(ListenerRuleOauthPtrOutput) +} + +// Enable or disable authentication. True: Enabled; False: Disabled. +func (o ListenerRuleOauthOutput) OauthEnable() pulumi.BoolPtrOutput { + return o.ApplyT(func(v ListenerRuleOauth) *bool { return v.OauthEnable }).(pulumi.BoolPtrOutput) +} + +// After all IAPs fail, the request is rejected or released. BYPASS: PASS; REJECT: Reject. +func (o ListenerRuleOauthOutput) OauthFailureStatus() pulumi.StringPtrOutput { + return o.ApplyT(func(v ListenerRuleOauth) *string { return v.OauthFailureStatus }).(pulumi.StringPtrOutput) +} + +type ListenerRuleOauthPtrOutput struct{ *pulumi.OutputState } + +func (ListenerRuleOauthPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**ListenerRuleOauth)(nil)).Elem() +} + +func (o ListenerRuleOauthPtrOutput) ToListenerRuleOauthPtrOutput() ListenerRuleOauthPtrOutput { + return o +} + +func (o ListenerRuleOauthPtrOutput) ToListenerRuleOauthPtrOutputWithContext(ctx context.Context) ListenerRuleOauthPtrOutput { + return o +} + +func (o ListenerRuleOauthPtrOutput) Elem() ListenerRuleOauthOutput { + return o.ApplyT(func(v *ListenerRuleOauth) ListenerRuleOauth { + if v != nil { + return *v + } + var ret ListenerRuleOauth + return ret + }).(ListenerRuleOauthOutput) +} + +// Enable or disable authentication. True: Enabled; False: Disabled. +func (o ListenerRuleOauthPtrOutput) OauthEnable() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *ListenerRuleOauth) *bool { + if v == nil { + return nil + } + return v.OauthEnable + }).(pulumi.BoolPtrOutput) +} + +// After all IAPs fail, the request is rejected or released. BYPASS: PASS; REJECT: Reject. +func (o ListenerRuleOauthPtrOutput) OauthFailureStatus() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ListenerRuleOauth) *string { + if v == nil { + return nil + } + return v.OauthFailureStatus + }).(pulumi.StringPtrOutput) +} + type ReplaceCertForLbsCertificate struct { // Content of the uploaded client certificate. When SSLMode = mutual, if there is no CertCaId, this parameter is required. CertCaContent *string `pulumi:"certCaContent"` @@ -9713,6 +9869,8 @@ func init() { pulumi.RegisterInputType(reflect.TypeOf((*FunctionTargetsAttachmentFunctionTargetsFunctionPtrInput)(nil)).Elem(), FunctionTargetsAttachmentFunctionTargetsFunctionArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*InstanceSnatIpInput)(nil)).Elem(), InstanceSnatIpArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*InstanceSnatIpArrayInput)(nil)).Elem(), InstanceSnatIpArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*ListenerRuleOauthInput)(nil)).Elem(), ListenerRuleOauthArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ListenerRuleOauthPtrInput)(nil)).Elem(), ListenerRuleOauthArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*ReplaceCertForLbsCertificateInput)(nil)).Elem(), ReplaceCertForLbsCertificateArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*ReplaceCertForLbsCertificatePtrInput)(nil)).Elem(), ReplaceCertForLbsCertificateArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*SnatIpIpInput)(nil)).Elem(), SnatIpIpArgs{}) @@ -9841,6 +9999,8 @@ func init() { pulumi.RegisterOutputType(FunctionTargetsAttachmentFunctionTargetsFunctionPtrOutput{}) pulumi.RegisterOutputType(InstanceSnatIpOutput{}) pulumi.RegisterOutputType(InstanceSnatIpArrayOutput{}) + pulumi.RegisterOutputType(ListenerRuleOauthOutput{}) + pulumi.RegisterOutputType(ListenerRuleOauthPtrOutput{}) pulumi.RegisterOutputType(ReplaceCertForLbsCertificateOutput{}) pulumi.RegisterOutputType(ReplaceCertForLbsCertificatePtrOutput{}) pulumi.RegisterOutputType(SnatIpIpOutput{}) diff --git a/sdk/go/tencentcloud/cls/cloudProductLogTask.go b/sdk/go/tencentcloud/cls/cloudProductLogTask.go new file mode 100644 index 000000000..aec2c01f8 --- /dev/null +++ b/sdk/go/tencentcloud/cls/cloudProductLogTask.go @@ -0,0 +1,474 @@ +// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package cls + +import ( + "context" + "reflect" + + "errors" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" + "github.com/tencentcloudstack/pulumi-tencentcloud/sdk/go/tencentcloud/internal" +) + +// Provides a resource to create a cls cloud product log task +// +// > **NOTE:** Using this resource will create new `logset` and `topic` +// +// ## Example Usage +// +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// "github.com/tencentcloudstack/pulumi-tencentcloud/sdk/go/tencentcloud/Cls" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// _, err := Cls.NewCloudProductLogTask(ctx, "example", &Cls.CloudProductLogTaskArgs{ +// AssumerName: pulumi.String("PostgreSQL"), +// CloudProductRegion: pulumi.String("gz"), +// ClsRegion: pulumi.String("ap-guangzhou"), +// InstanceId: pulumi.String("postgres-1p7xvpc1"), +// LogType: pulumi.String("PostgreSQL-SLOW"), +// LogsetName: pulumi.String("tf-example"), +// TopicName: pulumi.String("tf-example"), +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// +// +// ## Import +// +// cls cloud product log task can be imported using the id, e.g. +// +// ```sh +// $ pulumi import tencentcloud:Cls/cloudProductLogTask:CloudProductLogTask example postgres-1p7xvpc1#PostgreSQL#PostgreSQL-SLOW#gz +// ``` +type CloudProductLogTask struct { + pulumi.CustomResourceState + + // Cloud product identification, Values: CDS, CWP, CDB, TDSQL-C, MongoDB, TDStore, DCDB, MariaDB, PostgreSQL, BH, APIS. + AssumerName pulumi.StringOutput `pulumi:"assumerName"` + // Cloud product region. There are differences in the input format of different log types in different regions. Please refer to the following example: + // - CDS(all log type): ap-guangzhou + // - CDB-AUDIT: gz + // - TDSQL-C-AUDIT: gz + // - MongoDB-AUDIT: gz + // - MongoDB-SlowLog: ap-guangzhou + // - MongoDB-ErrorLog: ap-guangzhou + // - TDMYSQL-SLOW: gz + // - DCDB(all log type): gz + // - MariaDB(all log type): gz + // - PostgreSQL(all log type): gz + // - BH(all log type): overseas-polaris(Domestic sites overseas)/fsi-polaris(Domestic sites finance)/general-polaris(Domestic sites)/intl-sg-prod(International sites) + // - APIS(all log type): gz. + CloudProductRegion pulumi.StringOutput `pulumi:"cloudProductRegion"` + // CLS target region. + ClsRegion pulumi.StringOutput `pulumi:"clsRegion"` + // Log configuration extension information, generally used to store additional log delivery configurations. + Extend pulumi.StringPtrOutput `pulumi:"extend"` + // Instance ID. + InstanceId pulumi.StringOutput `pulumi:"instanceId"` + // Log type, Values: CDS-AUDIT, CDS-RISK, CDB-AUDIT, TDSQL-C-AUDIT, MongoDB-AUDIT, MongoDB-SlowLog, MongoDB-ErrorLog, TDMYSQL-SLOW, DCDB-AUDIT, DCDB-SLOW, DCDB-ERROR, MariaDB-AUDIT, MariaDB-SLOW, MariaDB-ERROR, PostgreSQL-SLOW, PostgreSQL-ERROR, PostgreSQL-AUDIT, BH-FILELOG, BH-COMMANDLOG, APIS-ACCESS. + LogType pulumi.StringOutput `pulumi:"logType"` + // Log set ID. + LogsetId pulumi.StringOutput `pulumi:"logsetId"` + // Log set name, it will be automatically created. + LogsetName pulumi.StringPtrOutput `pulumi:"logsetName"` + // Log theme ID. + TopicId pulumi.StringOutput `pulumi:"topicId"` + // The name of the log topic, it will be automatically created. + TopicName pulumi.StringPtrOutput `pulumi:"topicName"` +} + +// NewCloudProductLogTask registers a new resource with the given unique name, arguments, and options. +func NewCloudProductLogTask(ctx *pulumi.Context, + name string, args *CloudProductLogTaskArgs, opts ...pulumi.ResourceOption) (*CloudProductLogTask, error) { + if args == nil { + return nil, errors.New("missing one or more required arguments") + } + + if args.AssumerName == nil { + return nil, errors.New("invalid value for required argument 'AssumerName'") + } + if args.CloudProductRegion == nil { + return nil, errors.New("invalid value for required argument 'CloudProductRegion'") + } + if args.ClsRegion == nil { + return nil, errors.New("invalid value for required argument 'ClsRegion'") + } + if args.InstanceId == nil { + return nil, errors.New("invalid value for required argument 'InstanceId'") + } + if args.LogType == nil { + return nil, errors.New("invalid value for required argument 'LogType'") + } + opts = internal.PkgResourceDefaultOpts(opts) + var resource CloudProductLogTask + err := ctx.RegisterResource("tencentcloud:Cls/cloudProductLogTask:CloudProductLogTask", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetCloudProductLogTask gets an existing CloudProductLogTask resource's state with the given name, ID, and optional +// state properties that are used to uniquely qualify the lookup (nil if not required). +func GetCloudProductLogTask(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *CloudProductLogTaskState, opts ...pulumi.ResourceOption) (*CloudProductLogTask, error) { + var resource CloudProductLogTask + err := ctx.ReadResource("tencentcloud:Cls/cloudProductLogTask:CloudProductLogTask", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering CloudProductLogTask resources. +type cloudProductLogTaskState struct { + // Cloud product identification, Values: CDS, CWP, CDB, TDSQL-C, MongoDB, TDStore, DCDB, MariaDB, PostgreSQL, BH, APIS. + AssumerName *string `pulumi:"assumerName"` + // Cloud product region. There are differences in the input format of different log types in different regions. Please refer to the following example: + // - CDS(all log type): ap-guangzhou + // - CDB-AUDIT: gz + // - TDSQL-C-AUDIT: gz + // - MongoDB-AUDIT: gz + // - MongoDB-SlowLog: ap-guangzhou + // - MongoDB-ErrorLog: ap-guangzhou + // - TDMYSQL-SLOW: gz + // - DCDB(all log type): gz + // - MariaDB(all log type): gz + // - PostgreSQL(all log type): gz + // - BH(all log type): overseas-polaris(Domestic sites overseas)/fsi-polaris(Domestic sites finance)/general-polaris(Domestic sites)/intl-sg-prod(International sites) + // - APIS(all log type): gz. + CloudProductRegion *string `pulumi:"cloudProductRegion"` + // CLS target region. + ClsRegion *string `pulumi:"clsRegion"` + // Log configuration extension information, generally used to store additional log delivery configurations. + Extend *string `pulumi:"extend"` + // Instance ID. + InstanceId *string `pulumi:"instanceId"` + // Log type, Values: CDS-AUDIT, CDS-RISK, CDB-AUDIT, TDSQL-C-AUDIT, MongoDB-AUDIT, MongoDB-SlowLog, MongoDB-ErrorLog, TDMYSQL-SLOW, DCDB-AUDIT, DCDB-SLOW, DCDB-ERROR, MariaDB-AUDIT, MariaDB-SLOW, MariaDB-ERROR, PostgreSQL-SLOW, PostgreSQL-ERROR, PostgreSQL-AUDIT, BH-FILELOG, BH-COMMANDLOG, APIS-ACCESS. + LogType *string `pulumi:"logType"` + // Log set ID. + LogsetId *string `pulumi:"logsetId"` + // Log set name, it will be automatically created. + LogsetName *string `pulumi:"logsetName"` + // Log theme ID. + TopicId *string `pulumi:"topicId"` + // The name of the log topic, it will be automatically created. + TopicName *string `pulumi:"topicName"` +} + +type CloudProductLogTaskState struct { + // Cloud product identification, Values: CDS, CWP, CDB, TDSQL-C, MongoDB, TDStore, DCDB, MariaDB, PostgreSQL, BH, APIS. + AssumerName pulumi.StringPtrInput + // Cloud product region. There are differences in the input format of different log types in different regions. Please refer to the following example: + // - CDS(all log type): ap-guangzhou + // - CDB-AUDIT: gz + // - TDSQL-C-AUDIT: gz + // - MongoDB-AUDIT: gz + // - MongoDB-SlowLog: ap-guangzhou + // - MongoDB-ErrorLog: ap-guangzhou + // - TDMYSQL-SLOW: gz + // - DCDB(all log type): gz + // - MariaDB(all log type): gz + // - PostgreSQL(all log type): gz + // - BH(all log type): overseas-polaris(Domestic sites overseas)/fsi-polaris(Domestic sites finance)/general-polaris(Domestic sites)/intl-sg-prod(International sites) + // - APIS(all log type): gz. + CloudProductRegion pulumi.StringPtrInput + // CLS target region. + ClsRegion pulumi.StringPtrInput + // Log configuration extension information, generally used to store additional log delivery configurations. + Extend pulumi.StringPtrInput + // Instance ID. + InstanceId pulumi.StringPtrInput + // Log type, Values: CDS-AUDIT, CDS-RISK, CDB-AUDIT, TDSQL-C-AUDIT, MongoDB-AUDIT, MongoDB-SlowLog, MongoDB-ErrorLog, TDMYSQL-SLOW, DCDB-AUDIT, DCDB-SLOW, DCDB-ERROR, MariaDB-AUDIT, MariaDB-SLOW, MariaDB-ERROR, PostgreSQL-SLOW, PostgreSQL-ERROR, PostgreSQL-AUDIT, BH-FILELOG, BH-COMMANDLOG, APIS-ACCESS. + LogType pulumi.StringPtrInput + // Log set ID. + LogsetId pulumi.StringPtrInput + // Log set name, it will be automatically created. + LogsetName pulumi.StringPtrInput + // Log theme ID. + TopicId pulumi.StringPtrInput + // The name of the log topic, it will be automatically created. + TopicName pulumi.StringPtrInput +} + +func (CloudProductLogTaskState) ElementType() reflect.Type { + return reflect.TypeOf((*cloudProductLogTaskState)(nil)).Elem() +} + +type cloudProductLogTaskArgs struct { + // Cloud product identification, Values: CDS, CWP, CDB, TDSQL-C, MongoDB, TDStore, DCDB, MariaDB, PostgreSQL, BH, APIS. + AssumerName string `pulumi:"assumerName"` + // Cloud product region. There are differences in the input format of different log types in different regions. Please refer to the following example: + // - CDS(all log type): ap-guangzhou + // - CDB-AUDIT: gz + // - TDSQL-C-AUDIT: gz + // - MongoDB-AUDIT: gz + // - MongoDB-SlowLog: ap-guangzhou + // - MongoDB-ErrorLog: ap-guangzhou + // - TDMYSQL-SLOW: gz + // - DCDB(all log type): gz + // - MariaDB(all log type): gz + // - PostgreSQL(all log type): gz + // - BH(all log type): overseas-polaris(Domestic sites overseas)/fsi-polaris(Domestic sites finance)/general-polaris(Domestic sites)/intl-sg-prod(International sites) + // - APIS(all log type): gz. + CloudProductRegion string `pulumi:"cloudProductRegion"` + // CLS target region. + ClsRegion string `pulumi:"clsRegion"` + // Log configuration extension information, generally used to store additional log delivery configurations. + Extend *string `pulumi:"extend"` + // Instance ID. + InstanceId string `pulumi:"instanceId"` + // Log type, Values: CDS-AUDIT, CDS-RISK, CDB-AUDIT, TDSQL-C-AUDIT, MongoDB-AUDIT, MongoDB-SlowLog, MongoDB-ErrorLog, TDMYSQL-SLOW, DCDB-AUDIT, DCDB-SLOW, DCDB-ERROR, MariaDB-AUDIT, MariaDB-SLOW, MariaDB-ERROR, PostgreSQL-SLOW, PostgreSQL-ERROR, PostgreSQL-AUDIT, BH-FILELOG, BH-COMMANDLOG, APIS-ACCESS. + LogType string `pulumi:"logType"` + // Log set name, it will be automatically created. + LogsetName *string `pulumi:"logsetName"` + // The name of the log topic, it will be automatically created. + TopicName *string `pulumi:"topicName"` +} + +// The set of arguments for constructing a CloudProductLogTask resource. +type CloudProductLogTaskArgs struct { + // Cloud product identification, Values: CDS, CWP, CDB, TDSQL-C, MongoDB, TDStore, DCDB, MariaDB, PostgreSQL, BH, APIS. + AssumerName pulumi.StringInput + // Cloud product region. There are differences in the input format of different log types in different regions. Please refer to the following example: + // - CDS(all log type): ap-guangzhou + // - CDB-AUDIT: gz + // - TDSQL-C-AUDIT: gz + // - MongoDB-AUDIT: gz + // - MongoDB-SlowLog: ap-guangzhou + // - MongoDB-ErrorLog: ap-guangzhou + // - TDMYSQL-SLOW: gz + // - DCDB(all log type): gz + // - MariaDB(all log type): gz + // - PostgreSQL(all log type): gz + // - BH(all log type): overseas-polaris(Domestic sites overseas)/fsi-polaris(Domestic sites finance)/general-polaris(Domestic sites)/intl-sg-prod(International sites) + // - APIS(all log type): gz. + CloudProductRegion pulumi.StringInput + // CLS target region. + ClsRegion pulumi.StringInput + // Log configuration extension information, generally used to store additional log delivery configurations. + Extend pulumi.StringPtrInput + // Instance ID. + InstanceId pulumi.StringInput + // Log type, Values: CDS-AUDIT, CDS-RISK, CDB-AUDIT, TDSQL-C-AUDIT, MongoDB-AUDIT, MongoDB-SlowLog, MongoDB-ErrorLog, TDMYSQL-SLOW, DCDB-AUDIT, DCDB-SLOW, DCDB-ERROR, MariaDB-AUDIT, MariaDB-SLOW, MariaDB-ERROR, PostgreSQL-SLOW, PostgreSQL-ERROR, PostgreSQL-AUDIT, BH-FILELOG, BH-COMMANDLOG, APIS-ACCESS. + LogType pulumi.StringInput + // Log set name, it will be automatically created. + LogsetName pulumi.StringPtrInput + // The name of the log topic, it will be automatically created. + TopicName pulumi.StringPtrInput +} + +func (CloudProductLogTaskArgs) ElementType() reflect.Type { + return reflect.TypeOf((*cloudProductLogTaskArgs)(nil)).Elem() +} + +type CloudProductLogTaskInput interface { + pulumi.Input + + ToCloudProductLogTaskOutput() CloudProductLogTaskOutput + ToCloudProductLogTaskOutputWithContext(ctx context.Context) CloudProductLogTaskOutput +} + +func (*CloudProductLogTask) ElementType() reflect.Type { + return reflect.TypeOf((**CloudProductLogTask)(nil)).Elem() +} + +func (i *CloudProductLogTask) ToCloudProductLogTaskOutput() CloudProductLogTaskOutput { + return i.ToCloudProductLogTaskOutputWithContext(context.Background()) +} + +func (i *CloudProductLogTask) ToCloudProductLogTaskOutputWithContext(ctx context.Context) CloudProductLogTaskOutput { + return pulumi.ToOutputWithContext(ctx, i).(CloudProductLogTaskOutput) +} + +// CloudProductLogTaskArrayInput is an input type that accepts CloudProductLogTaskArray and CloudProductLogTaskArrayOutput values. +// You can construct a concrete instance of `CloudProductLogTaskArrayInput` via: +// +// CloudProductLogTaskArray{ CloudProductLogTaskArgs{...} } +type CloudProductLogTaskArrayInput interface { + pulumi.Input + + ToCloudProductLogTaskArrayOutput() CloudProductLogTaskArrayOutput + ToCloudProductLogTaskArrayOutputWithContext(context.Context) CloudProductLogTaskArrayOutput +} + +type CloudProductLogTaskArray []CloudProductLogTaskInput + +func (CloudProductLogTaskArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]*CloudProductLogTask)(nil)).Elem() +} + +func (i CloudProductLogTaskArray) ToCloudProductLogTaskArrayOutput() CloudProductLogTaskArrayOutput { + return i.ToCloudProductLogTaskArrayOutputWithContext(context.Background()) +} + +func (i CloudProductLogTaskArray) ToCloudProductLogTaskArrayOutputWithContext(ctx context.Context) CloudProductLogTaskArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(CloudProductLogTaskArrayOutput) +} + +// CloudProductLogTaskMapInput is an input type that accepts CloudProductLogTaskMap and CloudProductLogTaskMapOutput values. +// You can construct a concrete instance of `CloudProductLogTaskMapInput` via: +// +// CloudProductLogTaskMap{ "key": CloudProductLogTaskArgs{...} } +type CloudProductLogTaskMapInput interface { + pulumi.Input + + ToCloudProductLogTaskMapOutput() CloudProductLogTaskMapOutput + ToCloudProductLogTaskMapOutputWithContext(context.Context) CloudProductLogTaskMapOutput +} + +type CloudProductLogTaskMap map[string]CloudProductLogTaskInput + +func (CloudProductLogTaskMap) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*CloudProductLogTask)(nil)).Elem() +} + +func (i CloudProductLogTaskMap) ToCloudProductLogTaskMapOutput() CloudProductLogTaskMapOutput { + return i.ToCloudProductLogTaskMapOutputWithContext(context.Background()) +} + +func (i CloudProductLogTaskMap) ToCloudProductLogTaskMapOutputWithContext(ctx context.Context) CloudProductLogTaskMapOutput { + return pulumi.ToOutputWithContext(ctx, i).(CloudProductLogTaskMapOutput) +} + +type CloudProductLogTaskOutput struct{ *pulumi.OutputState } + +func (CloudProductLogTaskOutput) ElementType() reflect.Type { + return reflect.TypeOf((**CloudProductLogTask)(nil)).Elem() +} + +func (o CloudProductLogTaskOutput) ToCloudProductLogTaskOutput() CloudProductLogTaskOutput { + return o +} + +func (o CloudProductLogTaskOutput) ToCloudProductLogTaskOutputWithContext(ctx context.Context) CloudProductLogTaskOutput { + return o +} + +// Cloud product identification, Values: CDS, CWP, CDB, TDSQL-C, MongoDB, TDStore, DCDB, MariaDB, PostgreSQL, BH, APIS. +func (o CloudProductLogTaskOutput) AssumerName() pulumi.StringOutput { + return o.ApplyT(func(v *CloudProductLogTask) pulumi.StringOutput { return v.AssumerName }).(pulumi.StringOutput) +} + +// Cloud product region. There are differences in the input format of different log types in different regions. Please refer to the following example: +// - CDS(all log type): ap-guangzhou +// - CDB-AUDIT: gz +// - TDSQL-C-AUDIT: gz +// - MongoDB-AUDIT: gz +// - MongoDB-SlowLog: ap-guangzhou +// - MongoDB-ErrorLog: ap-guangzhou +// - TDMYSQL-SLOW: gz +// - DCDB(all log type): gz +// - MariaDB(all log type): gz +// - PostgreSQL(all log type): gz +// - BH(all log type): overseas-polaris(Domestic sites overseas)/fsi-polaris(Domestic sites finance)/general-polaris(Domestic sites)/intl-sg-prod(International sites) +// - APIS(all log type): gz. +func (o CloudProductLogTaskOutput) CloudProductRegion() pulumi.StringOutput { + return o.ApplyT(func(v *CloudProductLogTask) pulumi.StringOutput { return v.CloudProductRegion }).(pulumi.StringOutput) +} + +// CLS target region. +func (o CloudProductLogTaskOutput) ClsRegion() pulumi.StringOutput { + return o.ApplyT(func(v *CloudProductLogTask) pulumi.StringOutput { return v.ClsRegion }).(pulumi.StringOutput) +} + +// Log configuration extension information, generally used to store additional log delivery configurations. +func (o CloudProductLogTaskOutput) Extend() pulumi.StringPtrOutput { + return o.ApplyT(func(v *CloudProductLogTask) pulumi.StringPtrOutput { return v.Extend }).(pulumi.StringPtrOutput) +} + +// Instance ID. +func (o CloudProductLogTaskOutput) InstanceId() pulumi.StringOutput { + return o.ApplyT(func(v *CloudProductLogTask) pulumi.StringOutput { return v.InstanceId }).(pulumi.StringOutput) +} + +// Log type, Values: CDS-AUDIT, CDS-RISK, CDB-AUDIT, TDSQL-C-AUDIT, MongoDB-AUDIT, MongoDB-SlowLog, MongoDB-ErrorLog, TDMYSQL-SLOW, DCDB-AUDIT, DCDB-SLOW, DCDB-ERROR, MariaDB-AUDIT, MariaDB-SLOW, MariaDB-ERROR, PostgreSQL-SLOW, PostgreSQL-ERROR, PostgreSQL-AUDIT, BH-FILELOG, BH-COMMANDLOG, APIS-ACCESS. +func (o CloudProductLogTaskOutput) LogType() pulumi.StringOutput { + return o.ApplyT(func(v *CloudProductLogTask) pulumi.StringOutput { return v.LogType }).(pulumi.StringOutput) +} + +// Log set ID. +func (o CloudProductLogTaskOutput) LogsetId() pulumi.StringOutput { + return o.ApplyT(func(v *CloudProductLogTask) pulumi.StringOutput { return v.LogsetId }).(pulumi.StringOutput) +} + +// Log set name, it will be automatically created. +func (o CloudProductLogTaskOutput) LogsetName() pulumi.StringPtrOutput { + return o.ApplyT(func(v *CloudProductLogTask) pulumi.StringPtrOutput { return v.LogsetName }).(pulumi.StringPtrOutput) +} + +// Log theme ID. +func (o CloudProductLogTaskOutput) TopicId() pulumi.StringOutput { + return o.ApplyT(func(v *CloudProductLogTask) pulumi.StringOutput { return v.TopicId }).(pulumi.StringOutput) +} + +// The name of the log topic, it will be automatically created. +func (o CloudProductLogTaskOutput) TopicName() pulumi.StringPtrOutput { + return o.ApplyT(func(v *CloudProductLogTask) pulumi.StringPtrOutput { return v.TopicName }).(pulumi.StringPtrOutput) +} + +type CloudProductLogTaskArrayOutput struct{ *pulumi.OutputState } + +func (CloudProductLogTaskArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]*CloudProductLogTask)(nil)).Elem() +} + +func (o CloudProductLogTaskArrayOutput) ToCloudProductLogTaskArrayOutput() CloudProductLogTaskArrayOutput { + return o +} + +func (o CloudProductLogTaskArrayOutput) ToCloudProductLogTaskArrayOutputWithContext(ctx context.Context) CloudProductLogTaskArrayOutput { + return o +} + +func (o CloudProductLogTaskArrayOutput) Index(i pulumi.IntInput) CloudProductLogTaskOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) *CloudProductLogTask { + return vs[0].([]*CloudProductLogTask)[vs[1].(int)] + }).(CloudProductLogTaskOutput) +} + +type CloudProductLogTaskMapOutput struct{ *pulumi.OutputState } + +func (CloudProductLogTaskMapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*CloudProductLogTask)(nil)).Elem() +} + +func (o CloudProductLogTaskMapOutput) ToCloudProductLogTaskMapOutput() CloudProductLogTaskMapOutput { + return o +} + +func (o CloudProductLogTaskMapOutput) ToCloudProductLogTaskMapOutputWithContext(ctx context.Context) CloudProductLogTaskMapOutput { + return o +} + +func (o CloudProductLogTaskMapOutput) MapIndex(k pulumi.StringInput) CloudProductLogTaskOutput { + return pulumi.All(o, k).ApplyT(func(vs []interface{}) *CloudProductLogTask { + return vs[0].(map[string]*CloudProductLogTask)[vs[1].(string)] + }).(CloudProductLogTaskOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*CloudProductLogTaskInput)(nil)).Elem(), &CloudProductLogTask{}) + pulumi.RegisterInputType(reflect.TypeOf((*CloudProductLogTaskArrayInput)(nil)).Elem(), CloudProductLogTaskArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*CloudProductLogTaskMapInput)(nil)).Elem(), CloudProductLogTaskMap{}) + pulumi.RegisterOutputType(CloudProductLogTaskOutput{}) + pulumi.RegisterOutputType(CloudProductLogTaskArrayOutput{}) + pulumi.RegisterOutputType(CloudProductLogTaskMapOutput{}) +} diff --git a/sdk/go/tencentcloud/cls/init.go b/sdk/go/tencentcloud/cls/init.go index dd9313dd2..ce7ce025f 100644 --- a/sdk/go/tencentcloud/cls/init.go +++ b/sdk/go/tencentcloud/cls/init.go @@ -27,6 +27,8 @@ func (m *module) Construct(ctx *pulumi.Context, name, typ, urn string) (r pulumi r = &AlarmNotice{} case "tencentcloud:Cls/ckafkaConsumer:CkafkaConsumer": r = &CkafkaConsumer{} + case "tencentcloud:Cls/cloudProductLogTask:CloudProductLogTask": + r = &CloudProductLogTask{} case "tencentcloud:Cls/config:Config": r = &Config{} case "tencentcloud:Cls/configAttachment:ConfigAttachment": @@ -49,6 +51,8 @@ func (m *module) Construct(ctx *pulumi.Context, name, typ, urn string) (r pulumi r = &Logset{} case "tencentcloud:Cls/machineGroup:MachineGroup": r = &MachineGroup{} + case "tencentcloud:Cls/noticeContent:NoticeContent": + r = &NoticeContent{} case "tencentcloud:Cls/scheduledSql:ScheduledSql": r = &ScheduledSql{} case "tencentcloud:Cls/topic:Topic": @@ -81,6 +85,11 @@ func init() { "Cls/ckafkaConsumer", &module{version}, ) + pulumi.RegisterResourceModule( + "tencentcloud", + "Cls/cloudProductLogTask", + &module{version}, + ) pulumi.RegisterResourceModule( "tencentcloud", "Cls/config", @@ -136,6 +145,11 @@ func init() { "Cls/machineGroup", &module{version}, ) + pulumi.RegisterResourceModule( + "tencentcloud", + "Cls/noticeContent", + &module{version}, + ) pulumi.RegisterResourceModule( "tencentcloud", "Cls/scheduledSql", diff --git a/sdk/go/tencentcloud/cls/noticeContent.go b/sdk/go/tencentcloud/cls/noticeContent.go new file mode 100644 index 000000000..f363b9cf9 --- /dev/null +++ b/sdk/go/tencentcloud/cls/noticeContent.go @@ -0,0 +1,298 @@ +// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package cls + +import ( + "context" + "reflect" + + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" + "github.com/tencentcloudstack/pulumi-tencentcloud/sdk/go/tencentcloud/internal" +) + +// Provides a resource to create a cls notice content +// +// ## Example Usage +// +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// "github.com/tencentcloudstack/pulumi-tencentcloud/sdk/go/tencentcloud/Cls" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// _, err := Cls.NewNoticeContent(ctx, "example", &Cls.NoticeContentArgs{ +// NoticeContents: &cls.NoticeContentNoticeContentsArgs{ +// RecoveryContent: &cls.NoticeContentNoticeContentsRecoveryContentArgs{ +// Content: pulumi.String("This is content."), +// Headers: pulumi.StringArray{ +// pulumi.String("Content-Type:application/json"), +// }, +// Title: pulumi.String("title"), +// }, +// TriggerContent: &cls.NoticeContentNoticeContentsTriggerContentArgs{ +// Content: pulumi.String("This is content."), +// Headers: pulumi.StringArray{ +// pulumi.String("Content-Type:application/json"), +// }, +// Title: pulumi.String("title"), +// }, +// Type: pulumi.String("Email"), +// }, +// Type: pulumi.Int(0), +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// +// +// ## Import +// +// cls notice content can be imported using the id, e.g. +// +// ```sh +// $ pulumi import tencentcloud:Cls/noticeContent:NoticeContent example noticetemplate-b417f32a-bdf9-46c5-933e-28c23cd7a6b7 +// ``` +type NoticeContent struct { + pulumi.CustomResourceState + + // Notice content name. + Name pulumi.StringOutput `pulumi:"name"` + // Template detailed configuration. + NoticeContents NoticeContentNoticeContentsPtrOutput `pulumi:"noticeContents"` + // Template content language. 0: Chinese 1: English. + Type pulumi.IntPtrOutput `pulumi:"type"` +} + +// NewNoticeContent registers a new resource with the given unique name, arguments, and options. +func NewNoticeContent(ctx *pulumi.Context, + name string, args *NoticeContentArgs, opts ...pulumi.ResourceOption) (*NoticeContent, error) { + if args == nil { + args = &NoticeContentArgs{} + } + + opts = internal.PkgResourceDefaultOpts(opts) + var resource NoticeContent + err := ctx.RegisterResource("tencentcloud:Cls/noticeContent:NoticeContent", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetNoticeContent gets an existing NoticeContent resource's state with the given name, ID, and optional +// state properties that are used to uniquely qualify the lookup (nil if not required). +func GetNoticeContent(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *NoticeContentState, opts ...pulumi.ResourceOption) (*NoticeContent, error) { + var resource NoticeContent + err := ctx.ReadResource("tencentcloud:Cls/noticeContent:NoticeContent", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering NoticeContent resources. +type noticeContentState struct { + // Notice content name. + Name *string `pulumi:"name"` + // Template detailed configuration. + NoticeContents *NoticeContentNoticeContents `pulumi:"noticeContents"` + // Template content language. 0: Chinese 1: English. + Type *int `pulumi:"type"` +} + +type NoticeContentState struct { + // Notice content name. + Name pulumi.StringPtrInput + // Template detailed configuration. + NoticeContents NoticeContentNoticeContentsPtrInput + // Template content language. 0: Chinese 1: English. + Type pulumi.IntPtrInput +} + +func (NoticeContentState) ElementType() reflect.Type { + return reflect.TypeOf((*noticeContentState)(nil)).Elem() +} + +type noticeContentArgs struct { + // Notice content name. + Name *string `pulumi:"name"` + // Template detailed configuration. + NoticeContents *NoticeContentNoticeContents `pulumi:"noticeContents"` + // Template content language. 0: Chinese 1: English. + Type *int `pulumi:"type"` +} + +// The set of arguments for constructing a NoticeContent resource. +type NoticeContentArgs struct { + // Notice content name. + Name pulumi.StringPtrInput + // Template detailed configuration. + NoticeContents NoticeContentNoticeContentsPtrInput + // Template content language. 0: Chinese 1: English. + Type pulumi.IntPtrInput +} + +func (NoticeContentArgs) ElementType() reflect.Type { + return reflect.TypeOf((*noticeContentArgs)(nil)).Elem() +} + +type NoticeContentInput interface { + pulumi.Input + + ToNoticeContentOutput() NoticeContentOutput + ToNoticeContentOutputWithContext(ctx context.Context) NoticeContentOutput +} + +func (*NoticeContent) ElementType() reflect.Type { + return reflect.TypeOf((**NoticeContent)(nil)).Elem() +} + +func (i *NoticeContent) ToNoticeContentOutput() NoticeContentOutput { + return i.ToNoticeContentOutputWithContext(context.Background()) +} + +func (i *NoticeContent) ToNoticeContentOutputWithContext(ctx context.Context) NoticeContentOutput { + return pulumi.ToOutputWithContext(ctx, i).(NoticeContentOutput) +} + +// NoticeContentArrayInput is an input type that accepts NoticeContentArray and NoticeContentArrayOutput values. +// You can construct a concrete instance of `NoticeContentArrayInput` via: +// +// NoticeContentArray{ NoticeContentArgs{...} } +type NoticeContentArrayInput interface { + pulumi.Input + + ToNoticeContentArrayOutput() NoticeContentArrayOutput + ToNoticeContentArrayOutputWithContext(context.Context) NoticeContentArrayOutput +} + +type NoticeContentArray []NoticeContentInput + +func (NoticeContentArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]*NoticeContent)(nil)).Elem() +} + +func (i NoticeContentArray) ToNoticeContentArrayOutput() NoticeContentArrayOutput { + return i.ToNoticeContentArrayOutputWithContext(context.Background()) +} + +func (i NoticeContentArray) ToNoticeContentArrayOutputWithContext(ctx context.Context) NoticeContentArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(NoticeContentArrayOutput) +} + +// NoticeContentMapInput is an input type that accepts NoticeContentMap and NoticeContentMapOutput values. +// You can construct a concrete instance of `NoticeContentMapInput` via: +// +// NoticeContentMap{ "key": NoticeContentArgs{...} } +type NoticeContentMapInput interface { + pulumi.Input + + ToNoticeContentMapOutput() NoticeContentMapOutput + ToNoticeContentMapOutputWithContext(context.Context) NoticeContentMapOutput +} + +type NoticeContentMap map[string]NoticeContentInput + +func (NoticeContentMap) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*NoticeContent)(nil)).Elem() +} + +func (i NoticeContentMap) ToNoticeContentMapOutput() NoticeContentMapOutput { + return i.ToNoticeContentMapOutputWithContext(context.Background()) +} + +func (i NoticeContentMap) ToNoticeContentMapOutputWithContext(ctx context.Context) NoticeContentMapOutput { + return pulumi.ToOutputWithContext(ctx, i).(NoticeContentMapOutput) +} + +type NoticeContentOutput struct{ *pulumi.OutputState } + +func (NoticeContentOutput) ElementType() reflect.Type { + return reflect.TypeOf((**NoticeContent)(nil)).Elem() +} + +func (o NoticeContentOutput) ToNoticeContentOutput() NoticeContentOutput { + return o +} + +func (o NoticeContentOutput) ToNoticeContentOutputWithContext(ctx context.Context) NoticeContentOutput { + return o +} + +// Notice content name. +func (o NoticeContentOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v *NoticeContent) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput) +} + +// Template detailed configuration. +func (o NoticeContentOutput) NoticeContents() NoticeContentNoticeContentsPtrOutput { + return o.ApplyT(func(v *NoticeContent) NoticeContentNoticeContentsPtrOutput { return v.NoticeContents }).(NoticeContentNoticeContentsPtrOutput) +} + +// Template content language. 0: Chinese 1: English. +func (o NoticeContentOutput) Type() pulumi.IntPtrOutput { + return o.ApplyT(func(v *NoticeContent) pulumi.IntPtrOutput { return v.Type }).(pulumi.IntPtrOutput) +} + +type NoticeContentArrayOutput struct{ *pulumi.OutputState } + +func (NoticeContentArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]*NoticeContent)(nil)).Elem() +} + +func (o NoticeContentArrayOutput) ToNoticeContentArrayOutput() NoticeContentArrayOutput { + return o +} + +func (o NoticeContentArrayOutput) ToNoticeContentArrayOutputWithContext(ctx context.Context) NoticeContentArrayOutput { + return o +} + +func (o NoticeContentArrayOutput) Index(i pulumi.IntInput) NoticeContentOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) *NoticeContent { + return vs[0].([]*NoticeContent)[vs[1].(int)] + }).(NoticeContentOutput) +} + +type NoticeContentMapOutput struct{ *pulumi.OutputState } + +func (NoticeContentMapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*NoticeContent)(nil)).Elem() +} + +func (o NoticeContentMapOutput) ToNoticeContentMapOutput() NoticeContentMapOutput { + return o +} + +func (o NoticeContentMapOutput) ToNoticeContentMapOutputWithContext(ctx context.Context) NoticeContentMapOutput { + return o +} + +func (o NoticeContentMapOutput) MapIndex(k pulumi.StringInput) NoticeContentOutput { + return pulumi.All(o, k).ApplyT(func(vs []interface{}) *NoticeContent { + return vs[0].(map[string]*NoticeContent)[vs[1].(string)] + }).(NoticeContentOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*NoticeContentInput)(nil)).Elem(), &NoticeContent{}) + pulumi.RegisterInputType(reflect.TypeOf((*NoticeContentArrayInput)(nil)).Elem(), NoticeContentArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*NoticeContentMapInput)(nil)).Elem(), NoticeContentMap{}) + pulumi.RegisterOutputType(NoticeContentOutput{}) + pulumi.RegisterOutputType(NoticeContentArrayOutput{}) + pulumi.RegisterOutputType(NoticeContentMapOutput{}) +} diff --git a/sdk/go/tencentcloud/cls/pulumiTypes.go b/sdk/go/tencentcloud/cls/pulumiTypes.go index 5d55ff04c..89c149ca5 100644 --- a/sdk/go/tencentcloud/cls/pulumiTypes.go +++ b/sdk/go/tencentcloud/cls/pulumiTypes.go @@ -7441,6 +7441,535 @@ func (o MachineGroupMachineGroupTypePtrOutput) Values() pulumi.StringArrayOutput }).(pulumi.StringArrayOutput) } +type NoticeContentNoticeContents struct { + // Template for Alarm Recovery Notification Content. + RecoveryContent *NoticeContentNoticeContentsRecoveryContent `pulumi:"recoveryContent"` + // Alarm triggered notification content template. + TriggerContent *NoticeContentNoticeContentsTriggerContent `pulumi:"triggerContent"` + // Channel type. Email: Email; Sms: SMS; WeChat: WeChat; Phone: Telephone; WeCom: Enterprise WeChat; DingTalk: DingTalk; Lark: Feishu; HTTP: Custom callback. + Type string `pulumi:"type"` +} + +// NoticeContentNoticeContentsInput is an input type that accepts NoticeContentNoticeContentsArgs and NoticeContentNoticeContentsOutput values. +// You can construct a concrete instance of `NoticeContentNoticeContentsInput` via: +// +// NoticeContentNoticeContentsArgs{...} +type NoticeContentNoticeContentsInput interface { + pulumi.Input + + ToNoticeContentNoticeContentsOutput() NoticeContentNoticeContentsOutput + ToNoticeContentNoticeContentsOutputWithContext(context.Context) NoticeContentNoticeContentsOutput +} + +type NoticeContentNoticeContentsArgs struct { + // Template for Alarm Recovery Notification Content. + RecoveryContent NoticeContentNoticeContentsRecoveryContentPtrInput `pulumi:"recoveryContent"` + // Alarm triggered notification content template. + TriggerContent NoticeContentNoticeContentsTriggerContentPtrInput `pulumi:"triggerContent"` + // Channel type. Email: Email; Sms: SMS; WeChat: WeChat; Phone: Telephone; WeCom: Enterprise WeChat; DingTalk: DingTalk; Lark: Feishu; HTTP: Custom callback. + Type pulumi.StringInput `pulumi:"type"` +} + +func (NoticeContentNoticeContentsArgs) ElementType() reflect.Type { + return reflect.TypeOf((*NoticeContentNoticeContents)(nil)).Elem() +} + +func (i NoticeContentNoticeContentsArgs) ToNoticeContentNoticeContentsOutput() NoticeContentNoticeContentsOutput { + return i.ToNoticeContentNoticeContentsOutputWithContext(context.Background()) +} + +func (i NoticeContentNoticeContentsArgs) ToNoticeContentNoticeContentsOutputWithContext(ctx context.Context) NoticeContentNoticeContentsOutput { + return pulumi.ToOutputWithContext(ctx, i).(NoticeContentNoticeContentsOutput) +} + +func (i NoticeContentNoticeContentsArgs) ToNoticeContentNoticeContentsPtrOutput() NoticeContentNoticeContentsPtrOutput { + return i.ToNoticeContentNoticeContentsPtrOutputWithContext(context.Background()) +} + +func (i NoticeContentNoticeContentsArgs) ToNoticeContentNoticeContentsPtrOutputWithContext(ctx context.Context) NoticeContentNoticeContentsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(NoticeContentNoticeContentsOutput).ToNoticeContentNoticeContentsPtrOutputWithContext(ctx) +} + +// NoticeContentNoticeContentsPtrInput is an input type that accepts NoticeContentNoticeContentsArgs, NoticeContentNoticeContentsPtr and NoticeContentNoticeContentsPtrOutput values. +// You can construct a concrete instance of `NoticeContentNoticeContentsPtrInput` via: +// +// NoticeContentNoticeContentsArgs{...} +// +// or: +// +// nil +type NoticeContentNoticeContentsPtrInput interface { + pulumi.Input + + ToNoticeContentNoticeContentsPtrOutput() NoticeContentNoticeContentsPtrOutput + ToNoticeContentNoticeContentsPtrOutputWithContext(context.Context) NoticeContentNoticeContentsPtrOutput +} + +type noticeContentNoticeContentsPtrType NoticeContentNoticeContentsArgs + +func NoticeContentNoticeContentsPtr(v *NoticeContentNoticeContentsArgs) NoticeContentNoticeContentsPtrInput { + return (*noticeContentNoticeContentsPtrType)(v) +} + +func (*noticeContentNoticeContentsPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**NoticeContentNoticeContents)(nil)).Elem() +} + +func (i *noticeContentNoticeContentsPtrType) ToNoticeContentNoticeContentsPtrOutput() NoticeContentNoticeContentsPtrOutput { + return i.ToNoticeContentNoticeContentsPtrOutputWithContext(context.Background()) +} + +func (i *noticeContentNoticeContentsPtrType) ToNoticeContentNoticeContentsPtrOutputWithContext(ctx context.Context) NoticeContentNoticeContentsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(NoticeContentNoticeContentsPtrOutput) +} + +type NoticeContentNoticeContentsOutput struct{ *pulumi.OutputState } + +func (NoticeContentNoticeContentsOutput) ElementType() reflect.Type { + return reflect.TypeOf((*NoticeContentNoticeContents)(nil)).Elem() +} + +func (o NoticeContentNoticeContentsOutput) ToNoticeContentNoticeContentsOutput() NoticeContentNoticeContentsOutput { + return o +} + +func (o NoticeContentNoticeContentsOutput) ToNoticeContentNoticeContentsOutputWithContext(ctx context.Context) NoticeContentNoticeContentsOutput { + return o +} + +func (o NoticeContentNoticeContentsOutput) ToNoticeContentNoticeContentsPtrOutput() NoticeContentNoticeContentsPtrOutput { + return o.ToNoticeContentNoticeContentsPtrOutputWithContext(context.Background()) +} + +func (o NoticeContentNoticeContentsOutput) ToNoticeContentNoticeContentsPtrOutputWithContext(ctx context.Context) NoticeContentNoticeContentsPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v NoticeContentNoticeContents) *NoticeContentNoticeContents { + return &v + }).(NoticeContentNoticeContentsPtrOutput) +} + +// Template for Alarm Recovery Notification Content. +func (o NoticeContentNoticeContentsOutput) RecoveryContent() NoticeContentNoticeContentsRecoveryContentPtrOutput { + return o.ApplyT(func(v NoticeContentNoticeContents) *NoticeContentNoticeContentsRecoveryContent { + return v.RecoveryContent + }).(NoticeContentNoticeContentsRecoveryContentPtrOutput) +} + +// Alarm triggered notification content template. +func (o NoticeContentNoticeContentsOutput) TriggerContent() NoticeContentNoticeContentsTriggerContentPtrOutput { + return o.ApplyT(func(v NoticeContentNoticeContents) *NoticeContentNoticeContentsTriggerContent { + return v.TriggerContent + }).(NoticeContentNoticeContentsTriggerContentPtrOutput) +} + +// Channel type. Email: Email; Sms: SMS; WeChat: WeChat; Phone: Telephone; WeCom: Enterprise WeChat; DingTalk: DingTalk; Lark: Feishu; HTTP: Custom callback. +func (o NoticeContentNoticeContentsOutput) Type() pulumi.StringOutput { + return o.ApplyT(func(v NoticeContentNoticeContents) string { return v.Type }).(pulumi.StringOutput) +} + +type NoticeContentNoticeContentsPtrOutput struct{ *pulumi.OutputState } + +func (NoticeContentNoticeContentsPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**NoticeContentNoticeContents)(nil)).Elem() +} + +func (o NoticeContentNoticeContentsPtrOutput) ToNoticeContentNoticeContentsPtrOutput() NoticeContentNoticeContentsPtrOutput { + return o +} + +func (o NoticeContentNoticeContentsPtrOutput) ToNoticeContentNoticeContentsPtrOutputWithContext(ctx context.Context) NoticeContentNoticeContentsPtrOutput { + return o +} + +func (o NoticeContentNoticeContentsPtrOutput) Elem() NoticeContentNoticeContentsOutput { + return o.ApplyT(func(v *NoticeContentNoticeContents) NoticeContentNoticeContents { + if v != nil { + return *v + } + var ret NoticeContentNoticeContents + return ret + }).(NoticeContentNoticeContentsOutput) +} + +// Template for Alarm Recovery Notification Content. +func (o NoticeContentNoticeContentsPtrOutput) RecoveryContent() NoticeContentNoticeContentsRecoveryContentPtrOutput { + return o.ApplyT(func(v *NoticeContentNoticeContents) *NoticeContentNoticeContentsRecoveryContent { + if v == nil { + return nil + } + return v.RecoveryContent + }).(NoticeContentNoticeContentsRecoveryContentPtrOutput) +} + +// Alarm triggered notification content template. +func (o NoticeContentNoticeContentsPtrOutput) TriggerContent() NoticeContentNoticeContentsTriggerContentPtrOutput { + return o.ApplyT(func(v *NoticeContentNoticeContents) *NoticeContentNoticeContentsTriggerContent { + if v == nil { + return nil + } + return v.TriggerContent + }).(NoticeContentNoticeContentsTriggerContentPtrOutput) +} + +// Channel type. Email: Email; Sms: SMS; WeChat: WeChat; Phone: Telephone; WeCom: Enterprise WeChat; DingTalk: DingTalk; Lark: Feishu; HTTP: Custom callback. +func (o NoticeContentNoticeContentsPtrOutput) Type() pulumi.StringPtrOutput { + return o.ApplyT(func(v *NoticeContentNoticeContents) *string { + if v == nil { + return nil + } + return &v.Type + }).(pulumi.StringPtrOutput) +} + +type NoticeContentNoticeContentsRecoveryContent struct { + // Notification content template body information. + Content *string `pulumi:"content"` + // Request headers: In HTTP requests, request headers contain additional information sent by the client to the server, such as user agent, authorization credentials, expected response format, etc. Only `custom callback` supports this configuration. + Headers []string `pulumi:"headers"` + // Notification content template title information. Some notification channel types do not support 'title', please refer to the Tencent Cloud Console page. + Title *string `pulumi:"title"` +} + +// NoticeContentNoticeContentsRecoveryContentInput is an input type that accepts NoticeContentNoticeContentsRecoveryContentArgs and NoticeContentNoticeContentsRecoveryContentOutput values. +// You can construct a concrete instance of `NoticeContentNoticeContentsRecoveryContentInput` via: +// +// NoticeContentNoticeContentsRecoveryContentArgs{...} +type NoticeContentNoticeContentsRecoveryContentInput interface { + pulumi.Input + + ToNoticeContentNoticeContentsRecoveryContentOutput() NoticeContentNoticeContentsRecoveryContentOutput + ToNoticeContentNoticeContentsRecoveryContentOutputWithContext(context.Context) NoticeContentNoticeContentsRecoveryContentOutput +} + +type NoticeContentNoticeContentsRecoveryContentArgs struct { + // Notification content template body information. + Content pulumi.StringPtrInput `pulumi:"content"` + // Request headers: In HTTP requests, request headers contain additional information sent by the client to the server, such as user agent, authorization credentials, expected response format, etc. Only `custom callback` supports this configuration. + Headers pulumi.StringArrayInput `pulumi:"headers"` + // Notification content template title information. Some notification channel types do not support 'title', please refer to the Tencent Cloud Console page. + Title pulumi.StringPtrInput `pulumi:"title"` +} + +func (NoticeContentNoticeContentsRecoveryContentArgs) ElementType() reflect.Type { + return reflect.TypeOf((*NoticeContentNoticeContentsRecoveryContent)(nil)).Elem() +} + +func (i NoticeContentNoticeContentsRecoveryContentArgs) ToNoticeContentNoticeContentsRecoveryContentOutput() NoticeContentNoticeContentsRecoveryContentOutput { + return i.ToNoticeContentNoticeContentsRecoveryContentOutputWithContext(context.Background()) +} + +func (i NoticeContentNoticeContentsRecoveryContentArgs) ToNoticeContentNoticeContentsRecoveryContentOutputWithContext(ctx context.Context) NoticeContentNoticeContentsRecoveryContentOutput { + return pulumi.ToOutputWithContext(ctx, i).(NoticeContentNoticeContentsRecoveryContentOutput) +} + +func (i NoticeContentNoticeContentsRecoveryContentArgs) ToNoticeContentNoticeContentsRecoveryContentPtrOutput() NoticeContentNoticeContentsRecoveryContentPtrOutput { + return i.ToNoticeContentNoticeContentsRecoveryContentPtrOutputWithContext(context.Background()) +} + +func (i NoticeContentNoticeContentsRecoveryContentArgs) ToNoticeContentNoticeContentsRecoveryContentPtrOutputWithContext(ctx context.Context) NoticeContentNoticeContentsRecoveryContentPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(NoticeContentNoticeContentsRecoveryContentOutput).ToNoticeContentNoticeContentsRecoveryContentPtrOutputWithContext(ctx) +} + +// NoticeContentNoticeContentsRecoveryContentPtrInput is an input type that accepts NoticeContentNoticeContentsRecoveryContentArgs, NoticeContentNoticeContentsRecoveryContentPtr and NoticeContentNoticeContentsRecoveryContentPtrOutput values. +// You can construct a concrete instance of `NoticeContentNoticeContentsRecoveryContentPtrInput` via: +// +// NoticeContentNoticeContentsRecoveryContentArgs{...} +// +// or: +// +// nil +type NoticeContentNoticeContentsRecoveryContentPtrInput interface { + pulumi.Input + + ToNoticeContentNoticeContentsRecoveryContentPtrOutput() NoticeContentNoticeContentsRecoveryContentPtrOutput + ToNoticeContentNoticeContentsRecoveryContentPtrOutputWithContext(context.Context) NoticeContentNoticeContentsRecoveryContentPtrOutput +} + +type noticeContentNoticeContentsRecoveryContentPtrType NoticeContentNoticeContentsRecoveryContentArgs + +func NoticeContentNoticeContentsRecoveryContentPtr(v *NoticeContentNoticeContentsRecoveryContentArgs) NoticeContentNoticeContentsRecoveryContentPtrInput { + return (*noticeContentNoticeContentsRecoveryContentPtrType)(v) +} + +func (*noticeContentNoticeContentsRecoveryContentPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**NoticeContentNoticeContentsRecoveryContent)(nil)).Elem() +} + +func (i *noticeContentNoticeContentsRecoveryContentPtrType) ToNoticeContentNoticeContentsRecoveryContentPtrOutput() NoticeContentNoticeContentsRecoveryContentPtrOutput { + return i.ToNoticeContentNoticeContentsRecoveryContentPtrOutputWithContext(context.Background()) +} + +func (i *noticeContentNoticeContentsRecoveryContentPtrType) ToNoticeContentNoticeContentsRecoveryContentPtrOutputWithContext(ctx context.Context) NoticeContentNoticeContentsRecoveryContentPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(NoticeContentNoticeContentsRecoveryContentPtrOutput) +} + +type NoticeContentNoticeContentsRecoveryContentOutput struct{ *pulumi.OutputState } + +func (NoticeContentNoticeContentsRecoveryContentOutput) ElementType() reflect.Type { + return reflect.TypeOf((*NoticeContentNoticeContentsRecoveryContent)(nil)).Elem() +} + +func (o NoticeContentNoticeContentsRecoveryContentOutput) ToNoticeContentNoticeContentsRecoveryContentOutput() NoticeContentNoticeContentsRecoveryContentOutput { + return o +} + +func (o NoticeContentNoticeContentsRecoveryContentOutput) ToNoticeContentNoticeContentsRecoveryContentOutputWithContext(ctx context.Context) NoticeContentNoticeContentsRecoveryContentOutput { + return o +} + +func (o NoticeContentNoticeContentsRecoveryContentOutput) ToNoticeContentNoticeContentsRecoveryContentPtrOutput() NoticeContentNoticeContentsRecoveryContentPtrOutput { + return o.ToNoticeContentNoticeContentsRecoveryContentPtrOutputWithContext(context.Background()) +} + +func (o NoticeContentNoticeContentsRecoveryContentOutput) ToNoticeContentNoticeContentsRecoveryContentPtrOutputWithContext(ctx context.Context) NoticeContentNoticeContentsRecoveryContentPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v NoticeContentNoticeContentsRecoveryContent) *NoticeContentNoticeContentsRecoveryContent { + return &v + }).(NoticeContentNoticeContentsRecoveryContentPtrOutput) +} + +// Notification content template body information. +func (o NoticeContentNoticeContentsRecoveryContentOutput) Content() pulumi.StringPtrOutput { + return o.ApplyT(func(v NoticeContentNoticeContentsRecoveryContent) *string { return v.Content }).(pulumi.StringPtrOutput) +} + +// Request headers: In HTTP requests, request headers contain additional information sent by the client to the server, such as user agent, authorization credentials, expected response format, etc. Only `custom callback` supports this configuration. +func (o NoticeContentNoticeContentsRecoveryContentOutput) Headers() pulumi.StringArrayOutput { + return o.ApplyT(func(v NoticeContentNoticeContentsRecoveryContent) []string { return v.Headers }).(pulumi.StringArrayOutput) +} + +// Notification content template title information. Some notification channel types do not support 'title', please refer to the Tencent Cloud Console page. +func (o NoticeContentNoticeContentsRecoveryContentOutput) Title() pulumi.StringPtrOutput { + return o.ApplyT(func(v NoticeContentNoticeContentsRecoveryContent) *string { return v.Title }).(pulumi.StringPtrOutput) +} + +type NoticeContentNoticeContentsRecoveryContentPtrOutput struct{ *pulumi.OutputState } + +func (NoticeContentNoticeContentsRecoveryContentPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**NoticeContentNoticeContentsRecoveryContent)(nil)).Elem() +} + +func (o NoticeContentNoticeContentsRecoveryContentPtrOutput) ToNoticeContentNoticeContentsRecoveryContentPtrOutput() NoticeContentNoticeContentsRecoveryContentPtrOutput { + return o +} + +func (o NoticeContentNoticeContentsRecoveryContentPtrOutput) ToNoticeContentNoticeContentsRecoveryContentPtrOutputWithContext(ctx context.Context) NoticeContentNoticeContentsRecoveryContentPtrOutput { + return o +} + +func (o NoticeContentNoticeContentsRecoveryContentPtrOutput) Elem() NoticeContentNoticeContentsRecoveryContentOutput { + return o.ApplyT(func(v *NoticeContentNoticeContentsRecoveryContent) NoticeContentNoticeContentsRecoveryContent { + if v != nil { + return *v + } + var ret NoticeContentNoticeContentsRecoveryContent + return ret + }).(NoticeContentNoticeContentsRecoveryContentOutput) +} + +// Notification content template body information. +func (o NoticeContentNoticeContentsRecoveryContentPtrOutput) Content() pulumi.StringPtrOutput { + return o.ApplyT(func(v *NoticeContentNoticeContentsRecoveryContent) *string { + if v == nil { + return nil + } + return v.Content + }).(pulumi.StringPtrOutput) +} + +// Request headers: In HTTP requests, request headers contain additional information sent by the client to the server, such as user agent, authorization credentials, expected response format, etc. Only `custom callback` supports this configuration. +func (o NoticeContentNoticeContentsRecoveryContentPtrOutput) Headers() pulumi.StringArrayOutput { + return o.ApplyT(func(v *NoticeContentNoticeContentsRecoveryContent) []string { + if v == nil { + return nil + } + return v.Headers + }).(pulumi.StringArrayOutput) +} + +// Notification content template title information. Some notification channel types do not support 'title', please refer to the Tencent Cloud Console page. +func (o NoticeContentNoticeContentsRecoveryContentPtrOutput) Title() pulumi.StringPtrOutput { + return o.ApplyT(func(v *NoticeContentNoticeContentsRecoveryContent) *string { + if v == nil { + return nil + } + return v.Title + }).(pulumi.StringPtrOutput) +} + +type NoticeContentNoticeContentsTriggerContent struct { + // Notification content template body information. + Content *string `pulumi:"content"` + // Request headers: In HTTP requests, request headers contain additional information sent by the client to the server, such as user agent, authorization credentials, expected response format, etc. Only `custom callback` supports this configuration. + Headers []string `pulumi:"headers"` + // Notification content template title information. Some notification channel types do not support 'title', please refer to the Tencent Cloud Console page. + Title *string `pulumi:"title"` +} + +// NoticeContentNoticeContentsTriggerContentInput is an input type that accepts NoticeContentNoticeContentsTriggerContentArgs and NoticeContentNoticeContentsTriggerContentOutput values. +// You can construct a concrete instance of `NoticeContentNoticeContentsTriggerContentInput` via: +// +// NoticeContentNoticeContentsTriggerContentArgs{...} +type NoticeContentNoticeContentsTriggerContentInput interface { + pulumi.Input + + ToNoticeContentNoticeContentsTriggerContentOutput() NoticeContentNoticeContentsTriggerContentOutput + ToNoticeContentNoticeContentsTriggerContentOutputWithContext(context.Context) NoticeContentNoticeContentsTriggerContentOutput +} + +type NoticeContentNoticeContentsTriggerContentArgs struct { + // Notification content template body information. + Content pulumi.StringPtrInput `pulumi:"content"` + // Request headers: In HTTP requests, request headers contain additional information sent by the client to the server, such as user agent, authorization credentials, expected response format, etc. Only `custom callback` supports this configuration. + Headers pulumi.StringArrayInput `pulumi:"headers"` + // Notification content template title information. Some notification channel types do not support 'title', please refer to the Tencent Cloud Console page. + Title pulumi.StringPtrInput `pulumi:"title"` +} + +func (NoticeContentNoticeContentsTriggerContentArgs) ElementType() reflect.Type { + return reflect.TypeOf((*NoticeContentNoticeContentsTriggerContent)(nil)).Elem() +} + +func (i NoticeContentNoticeContentsTriggerContentArgs) ToNoticeContentNoticeContentsTriggerContentOutput() NoticeContentNoticeContentsTriggerContentOutput { + return i.ToNoticeContentNoticeContentsTriggerContentOutputWithContext(context.Background()) +} + +func (i NoticeContentNoticeContentsTriggerContentArgs) ToNoticeContentNoticeContentsTriggerContentOutputWithContext(ctx context.Context) NoticeContentNoticeContentsTriggerContentOutput { + return pulumi.ToOutputWithContext(ctx, i).(NoticeContentNoticeContentsTriggerContentOutput) +} + +func (i NoticeContentNoticeContentsTriggerContentArgs) ToNoticeContentNoticeContentsTriggerContentPtrOutput() NoticeContentNoticeContentsTriggerContentPtrOutput { + return i.ToNoticeContentNoticeContentsTriggerContentPtrOutputWithContext(context.Background()) +} + +func (i NoticeContentNoticeContentsTriggerContentArgs) ToNoticeContentNoticeContentsTriggerContentPtrOutputWithContext(ctx context.Context) NoticeContentNoticeContentsTriggerContentPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(NoticeContentNoticeContentsTriggerContentOutput).ToNoticeContentNoticeContentsTriggerContentPtrOutputWithContext(ctx) +} + +// NoticeContentNoticeContentsTriggerContentPtrInput is an input type that accepts NoticeContentNoticeContentsTriggerContentArgs, NoticeContentNoticeContentsTriggerContentPtr and NoticeContentNoticeContentsTriggerContentPtrOutput values. +// You can construct a concrete instance of `NoticeContentNoticeContentsTriggerContentPtrInput` via: +// +// NoticeContentNoticeContentsTriggerContentArgs{...} +// +// or: +// +// nil +type NoticeContentNoticeContentsTriggerContentPtrInput interface { + pulumi.Input + + ToNoticeContentNoticeContentsTriggerContentPtrOutput() NoticeContentNoticeContentsTriggerContentPtrOutput + ToNoticeContentNoticeContentsTriggerContentPtrOutputWithContext(context.Context) NoticeContentNoticeContentsTriggerContentPtrOutput +} + +type noticeContentNoticeContentsTriggerContentPtrType NoticeContentNoticeContentsTriggerContentArgs + +func NoticeContentNoticeContentsTriggerContentPtr(v *NoticeContentNoticeContentsTriggerContentArgs) NoticeContentNoticeContentsTriggerContentPtrInput { + return (*noticeContentNoticeContentsTriggerContentPtrType)(v) +} + +func (*noticeContentNoticeContentsTriggerContentPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**NoticeContentNoticeContentsTriggerContent)(nil)).Elem() +} + +func (i *noticeContentNoticeContentsTriggerContentPtrType) ToNoticeContentNoticeContentsTriggerContentPtrOutput() NoticeContentNoticeContentsTriggerContentPtrOutput { + return i.ToNoticeContentNoticeContentsTriggerContentPtrOutputWithContext(context.Background()) +} + +func (i *noticeContentNoticeContentsTriggerContentPtrType) ToNoticeContentNoticeContentsTriggerContentPtrOutputWithContext(ctx context.Context) NoticeContentNoticeContentsTriggerContentPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(NoticeContentNoticeContentsTriggerContentPtrOutput) +} + +type NoticeContentNoticeContentsTriggerContentOutput struct{ *pulumi.OutputState } + +func (NoticeContentNoticeContentsTriggerContentOutput) ElementType() reflect.Type { + return reflect.TypeOf((*NoticeContentNoticeContentsTriggerContent)(nil)).Elem() +} + +func (o NoticeContentNoticeContentsTriggerContentOutput) ToNoticeContentNoticeContentsTriggerContentOutput() NoticeContentNoticeContentsTriggerContentOutput { + return o +} + +func (o NoticeContentNoticeContentsTriggerContentOutput) ToNoticeContentNoticeContentsTriggerContentOutputWithContext(ctx context.Context) NoticeContentNoticeContentsTriggerContentOutput { + return o +} + +func (o NoticeContentNoticeContentsTriggerContentOutput) ToNoticeContentNoticeContentsTriggerContentPtrOutput() NoticeContentNoticeContentsTriggerContentPtrOutput { + return o.ToNoticeContentNoticeContentsTriggerContentPtrOutputWithContext(context.Background()) +} + +func (o NoticeContentNoticeContentsTriggerContentOutput) ToNoticeContentNoticeContentsTriggerContentPtrOutputWithContext(ctx context.Context) NoticeContentNoticeContentsTriggerContentPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v NoticeContentNoticeContentsTriggerContent) *NoticeContentNoticeContentsTriggerContent { + return &v + }).(NoticeContentNoticeContentsTriggerContentPtrOutput) +} + +// Notification content template body information. +func (o NoticeContentNoticeContentsTriggerContentOutput) Content() pulumi.StringPtrOutput { + return o.ApplyT(func(v NoticeContentNoticeContentsTriggerContent) *string { return v.Content }).(pulumi.StringPtrOutput) +} + +// Request headers: In HTTP requests, request headers contain additional information sent by the client to the server, such as user agent, authorization credentials, expected response format, etc. Only `custom callback` supports this configuration. +func (o NoticeContentNoticeContentsTriggerContentOutput) Headers() pulumi.StringArrayOutput { + return o.ApplyT(func(v NoticeContentNoticeContentsTriggerContent) []string { return v.Headers }).(pulumi.StringArrayOutput) +} + +// Notification content template title information. Some notification channel types do not support 'title', please refer to the Tencent Cloud Console page. +func (o NoticeContentNoticeContentsTriggerContentOutput) Title() pulumi.StringPtrOutput { + return o.ApplyT(func(v NoticeContentNoticeContentsTriggerContent) *string { return v.Title }).(pulumi.StringPtrOutput) +} + +type NoticeContentNoticeContentsTriggerContentPtrOutput struct{ *pulumi.OutputState } + +func (NoticeContentNoticeContentsTriggerContentPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**NoticeContentNoticeContentsTriggerContent)(nil)).Elem() +} + +func (o NoticeContentNoticeContentsTriggerContentPtrOutput) ToNoticeContentNoticeContentsTriggerContentPtrOutput() NoticeContentNoticeContentsTriggerContentPtrOutput { + return o +} + +func (o NoticeContentNoticeContentsTriggerContentPtrOutput) ToNoticeContentNoticeContentsTriggerContentPtrOutputWithContext(ctx context.Context) NoticeContentNoticeContentsTriggerContentPtrOutput { + return o +} + +func (o NoticeContentNoticeContentsTriggerContentPtrOutput) Elem() NoticeContentNoticeContentsTriggerContentOutput { + return o.ApplyT(func(v *NoticeContentNoticeContentsTriggerContent) NoticeContentNoticeContentsTriggerContent { + if v != nil { + return *v + } + var ret NoticeContentNoticeContentsTriggerContent + return ret + }).(NoticeContentNoticeContentsTriggerContentOutput) +} + +// Notification content template body information. +func (o NoticeContentNoticeContentsTriggerContentPtrOutput) Content() pulumi.StringPtrOutput { + return o.ApplyT(func(v *NoticeContentNoticeContentsTriggerContent) *string { + if v == nil { + return nil + } + return v.Content + }).(pulumi.StringPtrOutput) +} + +// Request headers: In HTTP requests, request headers contain additional information sent by the client to the server, such as user agent, authorization credentials, expected response format, etc. Only `custom callback` supports this configuration. +func (o NoticeContentNoticeContentsTriggerContentPtrOutput) Headers() pulumi.StringArrayOutput { + return o.ApplyT(func(v *NoticeContentNoticeContentsTriggerContent) []string { + if v == nil { + return nil + } + return v.Headers + }).(pulumi.StringArrayOutput) +} + +// Notification content template title information. Some notification channel types do not support 'title', please refer to the Tencent Cloud Console page. +func (o NoticeContentNoticeContentsTriggerContentPtrOutput) Title() pulumi.StringPtrOutput { + return o.ApplyT(func(v *NoticeContentNoticeContentsTriggerContent) *string { + if v == nil { + return nil + } + return v.Title + }).(pulumi.StringPtrOutput) +} + type ScheduledSqlDstResource struct { // topic type. BizType *int `pulumi:"bizType"` @@ -9579,6 +10108,12 @@ func init() { pulumi.RegisterInputType(reflect.TypeOf((*KafkaRechargeProtocolPtrInput)(nil)).Elem(), KafkaRechargeProtocolArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*MachineGroupMachineGroupTypeInput)(nil)).Elem(), MachineGroupMachineGroupTypeArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*MachineGroupMachineGroupTypePtrInput)(nil)).Elem(), MachineGroupMachineGroupTypeArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*NoticeContentNoticeContentsInput)(nil)).Elem(), NoticeContentNoticeContentsArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*NoticeContentNoticeContentsPtrInput)(nil)).Elem(), NoticeContentNoticeContentsArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*NoticeContentNoticeContentsRecoveryContentInput)(nil)).Elem(), NoticeContentNoticeContentsRecoveryContentArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*NoticeContentNoticeContentsRecoveryContentPtrInput)(nil)).Elem(), NoticeContentNoticeContentsRecoveryContentArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*NoticeContentNoticeContentsTriggerContentInput)(nil)).Elem(), NoticeContentNoticeContentsTriggerContentArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*NoticeContentNoticeContentsTriggerContentPtrInput)(nil)).Elem(), NoticeContentNoticeContentsTriggerContentArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*ScheduledSqlDstResourceInput)(nil)).Elem(), ScheduledSqlDstResourceArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*ScheduledSqlDstResourcePtrInput)(nil)).Elem(), ScheduledSqlDstResourceArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*TopicExtendsInput)(nil)).Elem(), TopicExtendsArgs{}) @@ -9691,6 +10226,12 @@ func init() { pulumi.RegisterOutputType(KafkaRechargeProtocolPtrOutput{}) pulumi.RegisterOutputType(MachineGroupMachineGroupTypeOutput{}) pulumi.RegisterOutputType(MachineGroupMachineGroupTypePtrOutput{}) + pulumi.RegisterOutputType(NoticeContentNoticeContentsOutput{}) + pulumi.RegisterOutputType(NoticeContentNoticeContentsPtrOutput{}) + pulumi.RegisterOutputType(NoticeContentNoticeContentsRecoveryContentOutput{}) + pulumi.RegisterOutputType(NoticeContentNoticeContentsRecoveryContentPtrOutput{}) + pulumi.RegisterOutputType(NoticeContentNoticeContentsTriggerContentOutput{}) + pulumi.RegisterOutputType(NoticeContentNoticeContentsTriggerContentPtrOutput{}) pulumi.RegisterOutputType(ScheduledSqlDstResourceOutput{}) pulumi.RegisterOutputType(ScheduledSqlDstResourcePtrOutput{}) pulumi.RegisterOutputType(TopicExtendsOutput{}) diff --git a/sdk/go/tencentcloud/kubernetes/nodePool.go b/sdk/go/tencentcloud/kubernetes/nodePool.go index a9d1ed5de..5406b9e02 100644 --- a/sdk/go/tencentcloud/kubernetes/nodePool.go +++ b/sdk/go/tencentcloud/kubernetes/nodePool.go @@ -20,6 +20,8 @@ import ( // // > **NOTE:** In order to ensure the integrity of customer data, if the cvm instance was destroyed due to shrinking, it will keep the cbs associate with cvm by default. If you want to destroy together, please set `deleteWithInstance` to `true`. // +// > **NOTE:** There are two parameters `waitNodeReady` and `scaleTolerance` to ensure better management of node pool scaling operations. If this parameter is set, when creating resources, if the set criteria are not met, the resources will be marked as `tainted`. +// // ## Example Usage // // @@ -207,6 +209,91 @@ import ( // ``` // // +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// "github.com/tencentcloudstack/pulumi-tencentcloud/sdk/go/tencentcloud/Kubernetes" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// _, err := Kubernetes.NewNodePool(ctx, "example", &Kubernetes.NodePoolArgs{ +// ClusterId: pulumi.Any(tencentcloud_kubernetes_cluster.Managed_cluster.Id), +// MaxSize: pulumi.Int(100), +// MinSize: pulumi.Int(1), +// VpcId: pulumi.Any(data.Tencentcloud_vpc_subnets.Vpc.Instance_list[0].Vpc_id), +// SubnetIds: pulumi.StringArray{ +// data.Tencentcloud_vpc_subnets.Vpc.Instance_list[0].Subnet_id, +// }, +// RetryPolicy: pulumi.String("INCREMENTAL_INTERVALS"), +// DesiredCapacity: pulumi.Int(50), +// EnableAutoScale: pulumi.Bool(false), +// WaitNodeReady: pulumi.Bool(true), +// ScaleTolerance: pulumi.Int(90), +// MultiZoneSubnetPolicy: pulumi.String("EQUALITY"), +// NodeOs: pulumi.String("img-6n21msk1"), +// DeleteKeepInstance: pulumi.Bool(false), +// AutoScalingConfig: &kubernetes.NodePoolAutoScalingConfigArgs{ +// InstanceType: pulumi.Any(_var.Default_instance_type), +// SystemDiskType: pulumi.String("CLOUD_PREMIUM"), +// SystemDiskSize: pulumi.Int(50), +// OrderlySecurityGroupIds: pulumi.StringArray{ +// pulumi.String("sg-bw28gmso"), +// }, +// DataDisks: kubernetes.NodePoolAutoScalingConfigDataDiskArray{ +// &kubernetes.NodePoolAutoScalingConfigDataDiskArgs{ +// DiskType: pulumi.String("CLOUD_PREMIUM"), +// DiskSize: pulumi.Int(50), +// DeleteWithInstance: pulumi.Bool(true), +// }, +// }, +// InternetChargeType: pulumi.String("TRAFFIC_POSTPAID_BY_HOUR"), +// InternetMaxBandwidthOut: pulumi.Int(10), +// PublicIpAssigned: pulumi.Bool(true), +// Password: pulumi.String("test123#"), +// EnhancedSecurityService: pulumi.Bool(false), +// EnhancedMonitorService: pulumi.Bool(false), +// HostName: pulumi.String("12.123.0.0"), +// HostNameStyle: pulumi.String("ORIGINAL"), +// }, +// Labels: pulumi.Map{ +// "test1": pulumi.Any("test1"), +// "test2": pulumi.Any("test2"), +// }, +// Taints: kubernetes.NodePoolTaintArray{ +// &kubernetes.NodePoolTaintArgs{ +// Key: pulumi.String("test_taint"), +// Value: pulumi.String("taint_value"), +// Effect: pulumi.String("PreferNoSchedule"), +// }, +// &kubernetes.NodePoolTaintArgs{ +// Key: pulumi.String("test_taint2"), +// Value: pulumi.String("taint_value2"), +// Effect: pulumi.String("PreferNoSchedule"), +// }, +// }, +// NodeConfig: &kubernetes.NodePoolNodeConfigArgs{ +// DockerGraphPath: pulumi.String("/var/lib/docker"), +// ExtraArgs: pulumi.StringArray{ +// pulumi.String("root-dir=/var/lib/kubelet"), +// }, +// }, +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// +// // ## Import // // tke node pool can be imported, e.g. @@ -261,6 +348,8 @@ type NodePool struct { NodeOsType pulumi.StringPtrOutput `pulumi:"nodeOsType"` // Available values for retry policies include `IMMEDIATE_RETRY` and `INCREMENTAL_INTERVALS`. RetryPolicy pulumi.StringPtrOutput `pulumi:"retryPolicy"` + // Control how many expectations(`desiredCapacity`) can be tolerated successfully. Unit is percentage, Default is `100`. Only can be set if `waitNodeReady` is `true`. + ScaleTolerance pulumi.IntPtrOutput `pulumi:"scaleTolerance"` // Name of relative scaling group. ScalingGroupName pulumi.StringOutput `pulumi:"scalingGroupName"` // Project ID the scaling group belongs to. @@ -281,6 +370,8 @@ type NodePool struct { Unschedulable pulumi.IntPtrOutput `pulumi:"unschedulable"` // ID of VPC network. VpcId pulumi.StringOutput `pulumi:"vpcId"` + // Whether to wait for all expansion resources to be ready. Default is false. Only can be set if `enableAutoScale` is `false`. + WaitNodeReady pulumi.BoolPtrOutput `pulumi:"waitNodeReady"` // List of auto scaling group available zones, for Basic network it is required. Zones pulumi.StringArrayOutput `pulumi:"zones"` } @@ -374,6 +465,8 @@ type nodePoolState struct { NodeOsType *string `pulumi:"nodeOsType"` // Available values for retry policies include `IMMEDIATE_RETRY` and `INCREMENTAL_INTERVALS`. RetryPolicy *string `pulumi:"retryPolicy"` + // Control how many expectations(`desiredCapacity`) can be tolerated successfully. Unit is percentage, Default is `100`. Only can be set if `waitNodeReady` is `true`. + ScaleTolerance *int `pulumi:"scaleTolerance"` // Name of relative scaling group. ScalingGroupName *string `pulumi:"scalingGroupName"` // Project ID the scaling group belongs to. @@ -394,6 +487,8 @@ type nodePoolState struct { Unschedulable *int `pulumi:"unschedulable"` // ID of VPC network. VpcId *string `pulumi:"vpcId"` + // Whether to wait for all expansion resources to be ready. Default is false. Only can be set if `enableAutoScale` is `false`. + WaitNodeReady *bool `pulumi:"waitNodeReady"` // List of auto scaling group available zones, for Basic network it is required. Zones []string `pulumi:"zones"` } @@ -443,6 +538,8 @@ type NodePoolState struct { NodeOsType pulumi.StringPtrInput // Available values for retry policies include `IMMEDIATE_RETRY` and `INCREMENTAL_INTERVALS`. RetryPolicy pulumi.StringPtrInput + // Control how many expectations(`desiredCapacity`) can be tolerated successfully. Unit is percentage, Default is `100`. Only can be set if `waitNodeReady` is `true`. + ScaleTolerance pulumi.IntPtrInput // Name of relative scaling group. ScalingGroupName pulumi.StringPtrInput // Project ID the scaling group belongs to. @@ -463,6 +560,8 @@ type NodePoolState struct { Unschedulable pulumi.IntPtrInput // ID of VPC network. VpcId pulumi.StringPtrInput + // Whether to wait for all expansion resources to be ready. Default is false. Only can be set if `enableAutoScale` is `false`. + WaitNodeReady pulumi.BoolPtrInput // List of auto scaling group available zones, for Basic network it is required. Zones pulumi.StringArrayInput } @@ -506,6 +605,8 @@ type nodePoolArgs struct { NodeOsType *string `pulumi:"nodeOsType"` // Available values for retry policies include `IMMEDIATE_RETRY` and `INCREMENTAL_INTERVALS`. RetryPolicy *string `pulumi:"retryPolicy"` + // Control how many expectations(`desiredCapacity`) can be tolerated successfully. Unit is percentage, Default is `100`. Only can be set if `waitNodeReady` is `true`. + ScaleTolerance *int `pulumi:"scaleTolerance"` // Name of relative scaling group. ScalingGroupName *string `pulumi:"scalingGroupName"` // Project ID the scaling group belongs to. @@ -524,6 +625,8 @@ type nodePoolArgs struct { Unschedulable *int `pulumi:"unschedulable"` // ID of VPC network. VpcId string `pulumi:"vpcId"` + // Whether to wait for all expansion resources to be ready. Default is false. Only can be set if `enableAutoScale` is `false`. + WaitNodeReady *bool `pulumi:"waitNodeReady"` // List of auto scaling group available zones, for Basic network it is required. Zones []string `pulumi:"zones"` } @@ -564,6 +667,8 @@ type NodePoolArgs struct { NodeOsType pulumi.StringPtrInput // Available values for retry policies include `IMMEDIATE_RETRY` and `INCREMENTAL_INTERVALS`. RetryPolicy pulumi.StringPtrInput + // Control how many expectations(`desiredCapacity`) can be tolerated successfully. Unit is percentage, Default is `100`. Only can be set if `waitNodeReady` is `true`. + ScaleTolerance pulumi.IntPtrInput // Name of relative scaling group. ScalingGroupName pulumi.StringPtrInput // Project ID the scaling group belongs to. @@ -582,6 +687,8 @@ type NodePoolArgs struct { Unschedulable pulumi.IntPtrInput // ID of VPC network. VpcId pulumi.StringInput + // Whether to wait for all expansion resources to be ready. Default is false. Only can be set if `enableAutoScale` is `false`. + WaitNodeReady pulumi.BoolPtrInput // List of auto scaling group available zones, for Basic network it is required. Zones pulumi.StringArrayInput } @@ -783,6 +890,11 @@ func (o NodePoolOutput) RetryPolicy() pulumi.StringPtrOutput { return o.ApplyT(func(v *NodePool) pulumi.StringPtrOutput { return v.RetryPolicy }).(pulumi.StringPtrOutput) } +// Control how many expectations(`desiredCapacity`) can be tolerated successfully. Unit is percentage, Default is `100`. Only can be set if `waitNodeReady` is `true`. +func (o NodePoolOutput) ScaleTolerance() pulumi.IntPtrOutput { + return o.ApplyT(func(v *NodePool) pulumi.IntPtrOutput { return v.ScaleTolerance }).(pulumi.IntPtrOutput) +} + // Name of relative scaling group. func (o NodePoolOutput) ScalingGroupName() pulumi.StringOutput { return o.ApplyT(func(v *NodePool) pulumi.StringOutput { return v.ScalingGroupName }).(pulumi.StringOutput) @@ -833,6 +945,11 @@ func (o NodePoolOutput) VpcId() pulumi.StringOutput { return o.ApplyT(func(v *NodePool) pulumi.StringOutput { return v.VpcId }).(pulumi.StringOutput) } +// Whether to wait for all expansion resources to be ready. Default is false. Only can be set if `enableAutoScale` is `false`. +func (o NodePoolOutput) WaitNodeReady() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *NodePool) pulumi.BoolPtrOutput { return v.WaitNodeReady }).(pulumi.BoolPtrOutput) +} + // List of auto scaling group available zones, for Basic network it is required. func (o NodePoolOutput) Zones() pulumi.StringArrayOutput { return o.ApplyT(func(v *NodePool) pulumi.StringArrayOutput { return v.Zones }).(pulumi.StringArrayOutput) diff --git a/sdk/go/tencentcloud/reserve/ipAddress.go b/sdk/go/tencentcloud/reserve/ipAddress.go index 9bbf1e13f..f823367a8 100644 --- a/sdk/go/tencentcloud/reserve/ipAddress.go +++ b/sdk/go/tencentcloud/reserve/ipAddress.go @@ -12,6 +12,49 @@ import ( "github.com/tencentcloudstack/pulumi-tencentcloud/sdk/go/tencentcloud/internal" ) +// Provides a resource to create a vpc reserve ip addresses +// +// ## Example Usage +// +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// "github.com/tencentcloudstack/pulumi-tencentcloud/sdk/go/tencentcloud/Reserve" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// _, err := Reserve.NewIpAddress(ctx, "reserveIp", &Reserve.IpAddressArgs{ +// Description: pulumi.String("description"), +// IpAddress: pulumi.String("10.0.0.13"), +// SubnetId: pulumi.String("xxxxxx"), +// Tags: pulumi.Map{ +// "test1": pulumi.Any("test1"), +// }, +// VpcId: pulumi.String("xxxxxx"), +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// +// +// ## Import +// +// vpc reserve_ip_addresses can be imported using the id, e.g. +// +// ```sh +// $ pulumi import tencentcloud:Reserve/ipAddress:IpAddress reserve_ip_addresses ${vpcId}#${reserveIpId} +// ``` type IpAddress struct { pulumi.CustomResourceState diff --git a/sdk/go/tencentcloud/scf/customDomain.go b/sdk/go/tencentcloud/scf/customDomain.go new file mode 100644 index 000000000..2f1bb6295 --- /dev/null +++ b/sdk/go/tencentcloud/scf/customDomain.go @@ -0,0 +1,333 @@ +// Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package scf + +import ( + "context" + "reflect" + + "errors" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" + "github.com/tencentcloudstack/pulumi-tencentcloud/sdk/go/tencentcloud/internal" +) + +// Provides a resource to create a scf custom domain +// +// ## Example Usage +// +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// "github.com/tencentcloudstack/pulumi-tencentcloud/sdk/go/tencentcloud/Scf" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// _, err := Scf.NewCustomDomain(ctx, "scfCustomDomain", &Scf.CustomDomainArgs{ +// Domain: pulumi.String("xxxxxx"), +// EndpointsConfigs: scf.CustomDomainEndpointsConfigArray{ +// &scf.CustomDomainEndpointsConfigArgs{ +// FunctionName: pulumi.String("xxxxxx"), +// Namespace: pulumi.String("default"), +// PathMatch: pulumi.String("/aa/*"), +// Qualifier: pulumi.String("$LATEST"), +// }, +// }, +// Protocol: pulumi.String("HTTP"), +// WafConfig: &scf.CustomDomainWafConfigArgs{ +// WafOpen: pulumi.String("CLOSE"), +// }, +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// +// +// ## Import +// +// scf scf_custom_domain can be imported using the id, e.g. +// +// ```sh +// $ pulumi import tencentcloud:Scf/customDomain:CustomDomain scf_custom_domain ${domain} +// ``` +type CustomDomain struct { + pulumi.CustomResourceState + + // Certificate configuration information, required for HTTPS protocol. + CertConfig CustomDomainCertConfigOutput `pulumi:"certConfig"` + // Domain names, pan-domain names are not supported. + Domain pulumi.StringOutput `pulumi:"domain"` + // Routing configuration. + EndpointsConfigs CustomDomainEndpointsConfigArrayOutput `pulumi:"endpointsConfigs"` + // Protocol, value range: HTTP, HTTPS, HTTP&HTTPS. + Protocol pulumi.StringOutput `pulumi:"protocol"` + // Web Application Firewall Configuration. + WafConfig CustomDomainWafConfigOutput `pulumi:"wafConfig"` +} + +// NewCustomDomain registers a new resource with the given unique name, arguments, and options. +func NewCustomDomain(ctx *pulumi.Context, + name string, args *CustomDomainArgs, opts ...pulumi.ResourceOption) (*CustomDomain, error) { + if args == nil { + return nil, errors.New("missing one or more required arguments") + } + + if args.Domain == nil { + return nil, errors.New("invalid value for required argument 'Domain'") + } + if args.EndpointsConfigs == nil { + return nil, errors.New("invalid value for required argument 'EndpointsConfigs'") + } + if args.Protocol == nil { + return nil, errors.New("invalid value for required argument 'Protocol'") + } + opts = internal.PkgResourceDefaultOpts(opts) + var resource CustomDomain + err := ctx.RegisterResource("tencentcloud:Scf/customDomain:CustomDomain", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetCustomDomain gets an existing CustomDomain resource's state with the given name, ID, and optional +// state properties that are used to uniquely qualify the lookup (nil if not required). +func GetCustomDomain(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *CustomDomainState, opts ...pulumi.ResourceOption) (*CustomDomain, error) { + var resource CustomDomain + err := ctx.ReadResource("tencentcloud:Scf/customDomain:CustomDomain", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering CustomDomain resources. +type customDomainState struct { + // Certificate configuration information, required for HTTPS protocol. + CertConfig *CustomDomainCertConfig `pulumi:"certConfig"` + // Domain names, pan-domain names are not supported. + Domain *string `pulumi:"domain"` + // Routing configuration. + EndpointsConfigs []CustomDomainEndpointsConfig `pulumi:"endpointsConfigs"` + // Protocol, value range: HTTP, HTTPS, HTTP&HTTPS. + Protocol *string `pulumi:"protocol"` + // Web Application Firewall Configuration. + WafConfig *CustomDomainWafConfig `pulumi:"wafConfig"` +} + +type CustomDomainState struct { + // Certificate configuration information, required for HTTPS protocol. + CertConfig CustomDomainCertConfigPtrInput + // Domain names, pan-domain names are not supported. + Domain pulumi.StringPtrInput + // Routing configuration. + EndpointsConfigs CustomDomainEndpointsConfigArrayInput + // Protocol, value range: HTTP, HTTPS, HTTP&HTTPS. + Protocol pulumi.StringPtrInput + // Web Application Firewall Configuration. + WafConfig CustomDomainWafConfigPtrInput +} + +func (CustomDomainState) ElementType() reflect.Type { + return reflect.TypeOf((*customDomainState)(nil)).Elem() +} + +type customDomainArgs struct { + // Certificate configuration information, required for HTTPS protocol. + CertConfig *CustomDomainCertConfig `pulumi:"certConfig"` + // Domain names, pan-domain names are not supported. + Domain string `pulumi:"domain"` + // Routing configuration. + EndpointsConfigs []CustomDomainEndpointsConfig `pulumi:"endpointsConfigs"` + // Protocol, value range: HTTP, HTTPS, HTTP&HTTPS. + Protocol string `pulumi:"protocol"` + // Web Application Firewall Configuration. + WafConfig *CustomDomainWafConfig `pulumi:"wafConfig"` +} + +// The set of arguments for constructing a CustomDomain resource. +type CustomDomainArgs struct { + // Certificate configuration information, required for HTTPS protocol. + CertConfig CustomDomainCertConfigPtrInput + // Domain names, pan-domain names are not supported. + Domain pulumi.StringInput + // Routing configuration. + EndpointsConfigs CustomDomainEndpointsConfigArrayInput + // Protocol, value range: HTTP, HTTPS, HTTP&HTTPS. + Protocol pulumi.StringInput + // Web Application Firewall Configuration. + WafConfig CustomDomainWafConfigPtrInput +} + +func (CustomDomainArgs) ElementType() reflect.Type { + return reflect.TypeOf((*customDomainArgs)(nil)).Elem() +} + +type CustomDomainInput interface { + pulumi.Input + + ToCustomDomainOutput() CustomDomainOutput + ToCustomDomainOutputWithContext(ctx context.Context) CustomDomainOutput +} + +func (*CustomDomain) ElementType() reflect.Type { + return reflect.TypeOf((**CustomDomain)(nil)).Elem() +} + +func (i *CustomDomain) ToCustomDomainOutput() CustomDomainOutput { + return i.ToCustomDomainOutputWithContext(context.Background()) +} + +func (i *CustomDomain) ToCustomDomainOutputWithContext(ctx context.Context) CustomDomainOutput { + return pulumi.ToOutputWithContext(ctx, i).(CustomDomainOutput) +} + +// CustomDomainArrayInput is an input type that accepts CustomDomainArray and CustomDomainArrayOutput values. +// You can construct a concrete instance of `CustomDomainArrayInput` via: +// +// CustomDomainArray{ CustomDomainArgs{...} } +type CustomDomainArrayInput interface { + pulumi.Input + + ToCustomDomainArrayOutput() CustomDomainArrayOutput + ToCustomDomainArrayOutputWithContext(context.Context) CustomDomainArrayOutput +} + +type CustomDomainArray []CustomDomainInput + +func (CustomDomainArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]*CustomDomain)(nil)).Elem() +} + +func (i CustomDomainArray) ToCustomDomainArrayOutput() CustomDomainArrayOutput { + return i.ToCustomDomainArrayOutputWithContext(context.Background()) +} + +func (i CustomDomainArray) ToCustomDomainArrayOutputWithContext(ctx context.Context) CustomDomainArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(CustomDomainArrayOutput) +} + +// CustomDomainMapInput is an input type that accepts CustomDomainMap and CustomDomainMapOutput values. +// You can construct a concrete instance of `CustomDomainMapInput` via: +// +// CustomDomainMap{ "key": CustomDomainArgs{...} } +type CustomDomainMapInput interface { + pulumi.Input + + ToCustomDomainMapOutput() CustomDomainMapOutput + ToCustomDomainMapOutputWithContext(context.Context) CustomDomainMapOutput +} + +type CustomDomainMap map[string]CustomDomainInput + +func (CustomDomainMap) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*CustomDomain)(nil)).Elem() +} + +func (i CustomDomainMap) ToCustomDomainMapOutput() CustomDomainMapOutput { + return i.ToCustomDomainMapOutputWithContext(context.Background()) +} + +func (i CustomDomainMap) ToCustomDomainMapOutputWithContext(ctx context.Context) CustomDomainMapOutput { + return pulumi.ToOutputWithContext(ctx, i).(CustomDomainMapOutput) +} + +type CustomDomainOutput struct{ *pulumi.OutputState } + +func (CustomDomainOutput) ElementType() reflect.Type { + return reflect.TypeOf((**CustomDomain)(nil)).Elem() +} + +func (o CustomDomainOutput) ToCustomDomainOutput() CustomDomainOutput { + return o +} + +func (o CustomDomainOutput) ToCustomDomainOutputWithContext(ctx context.Context) CustomDomainOutput { + return o +} + +// Certificate configuration information, required for HTTPS protocol. +func (o CustomDomainOutput) CertConfig() CustomDomainCertConfigOutput { + return o.ApplyT(func(v *CustomDomain) CustomDomainCertConfigOutput { return v.CertConfig }).(CustomDomainCertConfigOutput) +} + +// Domain names, pan-domain names are not supported. +func (o CustomDomainOutput) Domain() pulumi.StringOutput { + return o.ApplyT(func(v *CustomDomain) pulumi.StringOutput { return v.Domain }).(pulumi.StringOutput) +} + +// Routing configuration. +func (o CustomDomainOutput) EndpointsConfigs() CustomDomainEndpointsConfigArrayOutput { + return o.ApplyT(func(v *CustomDomain) CustomDomainEndpointsConfigArrayOutput { return v.EndpointsConfigs }).(CustomDomainEndpointsConfigArrayOutput) +} + +// Protocol, value range: HTTP, HTTPS, HTTP&HTTPS. +func (o CustomDomainOutput) Protocol() pulumi.StringOutput { + return o.ApplyT(func(v *CustomDomain) pulumi.StringOutput { return v.Protocol }).(pulumi.StringOutput) +} + +// Web Application Firewall Configuration. +func (o CustomDomainOutput) WafConfig() CustomDomainWafConfigOutput { + return o.ApplyT(func(v *CustomDomain) CustomDomainWafConfigOutput { return v.WafConfig }).(CustomDomainWafConfigOutput) +} + +type CustomDomainArrayOutput struct{ *pulumi.OutputState } + +func (CustomDomainArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]*CustomDomain)(nil)).Elem() +} + +func (o CustomDomainArrayOutput) ToCustomDomainArrayOutput() CustomDomainArrayOutput { + return o +} + +func (o CustomDomainArrayOutput) ToCustomDomainArrayOutputWithContext(ctx context.Context) CustomDomainArrayOutput { + return o +} + +func (o CustomDomainArrayOutput) Index(i pulumi.IntInput) CustomDomainOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) *CustomDomain { + return vs[0].([]*CustomDomain)[vs[1].(int)] + }).(CustomDomainOutput) +} + +type CustomDomainMapOutput struct{ *pulumi.OutputState } + +func (CustomDomainMapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*CustomDomain)(nil)).Elem() +} + +func (o CustomDomainMapOutput) ToCustomDomainMapOutput() CustomDomainMapOutput { + return o +} + +func (o CustomDomainMapOutput) ToCustomDomainMapOutputWithContext(ctx context.Context) CustomDomainMapOutput { + return o +} + +func (o CustomDomainMapOutput) MapIndex(k pulumi.StringInput) CustomDomainOutput { + return pulumi.All(o, k).ApplyT(func(vs []interface{}) *CustomDomain { + return vs[0].(map[string]*CustomDomain)[vs[1].(string)] + }).(CustomDomainOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*CustomDomainInput)(nil)).Elem(), &CustomDomain{}) + pulumi.RegisterInputType(reflect.TypeOf((*CustomDomainArrayInput)(nil)).Elem(), CustomDomainArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*CustomDomainMapInput)(nil)).Elem(), CustomDomainMap{}) + pulumi.RegisterOutputType(CustomDomainOutput{}) + pulumi.RegisterOutputType(CustomDomainArrayOutput{}) + pulumi.RegisterOutputType(CustomDomainMapOutput{}) +} diff --git a/sdk/go/tencentcloud/scf/init.go b/sdk/go/tencentcloud/scf/init.go index 19aa773bd..fb189652c 100644 --- a/sdk/go/tencentcloud/scf/init.go +++ b/sdk/go/tencentcloud/scf/init.go @@ -21,6 +21,8 @@ func (m *module) Version() semver.Version { func (m *module) Construct(ctx *pulumi.Context, name, typ, urn string) (r pulumi.Resource, err error) { switch typ { + case "tencentcloud:Scf/customDomain:CustomDomain": + r = &CustomDomain{} case "tencentcloud:Scf/function:Function": r = &Function{} case "tencentcloud:Scf/functionAlias:FunctionAlias": @@ -58,6 +60,11 @@ func init() { if err != nil { version = semver.Version{Major: 1} } + pulumi.RegisterResourceModule( + "tencentcloud", + "Scf/customDomain", + &module{version}, + ) pulumi.RegisterResourceModule( "tencentcloud", "Scf/function", diff --git a/sdk/go/tencentcloud/scf/pulumiTypes.go b/sdk/go/tencentcloud/scf/pulumiTypes.go index 7eb5c1b95..64495b80f 100644 --- a/sdk/go/tencentcloud/scf/pulumiTypes.go +++ b/sdk/go/tencentcloud/scf/pulumiTypes.go @@ -13,6 +13,547 @@ import ( var _ = internal.GetEnvOrDefault +type CustomDomainCertConfig struct { + // SSL Certificates ID. + CertificateId *string `pulumi:"certificateId"` +} + +// CustomDomainCertConfigInput is an input type that accepts CustomDomainCertConfigArgs and CustomDomainCertConfigOutput values. +// You can construct a concrete instance of `CustomDomainCertConfigInput` via: +// +// CustomDomainCertConfigArgs{...} +type CustomDomainCertConfigInput interface { + pulumi.Input + + ToCustomDomainCertConfigOutput() CustomDomainCertConfigOutput + ToCustomDomainCertConfigOutputWithContext(context.Context) CustomDomainCertConfigOutput +} + +type CustomDomainCertConfigArgs struct { + // SSL Certificates ID. + CertificateId pulumi.StringPtrInput `pulumi:"certificateId"` +} + +func (CustomDomainCertConfigArgs) ElementType() reflect.Type { + return reflect.TypeOf((*CustomDomainCertConfig)(nil)).Elem() +} + +func (i CustomDomainCertConfigArgs) ToCustomDomainCertConfigOutput() CustomDomainCertConfigOutput { + return i.ToCustomDomainCertConfigOutputWithContext(context.Background()) +} + +func (i CustomDomainCertConfigArgs) ToCustomDomainCertConfigOutputWithContext(ctx context.Context) CustomDomainCertConfigOutput { + return pulumi.ToOutputWithContext(ctx, i).(CustomDomainCertConfigOutput) +} + +func (i CustomDomainCertConfigArgs) ToCustomDomainCertConfigPtrOutput() CustomDomainCertConfigPtrOutput { + return i.ToCustomDomainCertConfigPtrOutputWithContext(context.Background()) +} + +func (i CustomDomainCertConfigArgs) ToCustomDomainCertConfigPtrOutputWithContext(ctx context.Context) CustomDomainCertConfigPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(CustomDomainCertConfigOutput).ToCustomDomainCertConfigPtrOutputWithContext(ctx) +} + +// CustomDomainCertConfigPtrInput is an input type that accepts CustomDomainCertConfigArgs, CustomDomainCertConfigPtr and CustomDomainCertConfigPtrOutput values. +// You can construct a concrete instance of `CustomDomainCertConfigPtrInput` via: +// +// CustomDomainCertConfigArgs{...} +// +// or: +// +// nil +type CustomDomainCertConfigPtrInput interface { + pulumi.Input + + ToCustomDomainCertConfigPtrOutput() CustomDomainCertConfigPtrOutput + ToCustomDomainCertConfigPtrOutputWithContext(context.Context) CustomDomainCertConfigPtrOutput +} + +type customDomainCertConfigPtrType CustomDomainCertConfigArgs + +func CustomDomainCertConfigPtr(v *CustomDomainCertConfigArgs) CustomDomainCertConfigPtrInput { + return (*customDomainCertConfigPtrType)(v) +} + +func (*customDomainCertConfigPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**CustomDomainCertConfig)(nil)).Elem() +} + +func (i *customDomainCertConfigPtrType) ToCustomDomainCertConfigPtrOutput() CustomDomainCertConfigPtrOutput { + return i.ToCustomDomainCertConfigPtrOutputWithContext(context.Background()) +} + +func (i *customDomainCertConfigPtrType) ToCustomDomainCertConfigPtrOutputWithContext(ctx context.Context) CustomDomainCertConfigPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(CustomDomainCertConfigPtrOutput) +} + +type CustomDomainCertConfigOutput struct{ *pulumi.OutputState } + +func (CustomDomainCertConfigOutput) ElementType() reflect.Type { + return reflect.TypeOf((*CustomDomainCertConfig)(nil)).Elem() +} + +func (o CustomDomainCertConfigOutput) ToCustomDomainCertConfigOutput() CustomDomainCertConfigOutput { + return o +} + +func (o CustomDomainCertConfigOutput) ToCustomDomainCertConfigOutputWithContext(ctx context.Context) CustomDomainCertConfigOutput { + return o +} + +func (o CustomDomainCertConfigOutput) ToCustomDomainCertConfigPtrOutput() CustomDomainCertConfigPtrOutput { + return o.ToCustomDomainCertConfigPtrOutputWithContext(context.Background()) +} + +func (o CustomDomainCertConfigOutput) ToCustomDomainCertConfigPtrOutputWithContext(ctx context.Context) CustomDomainCertConfigPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v CustomDomainCertConfig) *CustomDomainCertConfig { + return &v + }).(CustomDomainCertConfigPtrOutput) +} + +// SSL Certificates ID. +func (o CustomDomainCertConfigOutput) CertificateId() pulumi.StringPtrOutput { + return o.ApplyT(func(v CustomDomainCertConfig) *string { return v.CertificateId }).(pulumi.StringPtrOutput) +} + +type CustomDomainCertConfigPtrOutput struct{ *pulumi.OutputState } + +func (CustomDomainCertConfigPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**CustomDomainCertConfig)(nil)).Elem() +} + +func (o CustomDomainCertConfigPtrOutput) ToCustomDomainCertConfigPtrOutput() CustomDomainCertConfigPtrOutput { + return o +} + +func (o CustomDomainCertConfigPtrOutput) ToCustomDomainCertConfigPtrOutputWithContext(ctx context.Context) CustomDomainCertConfigPtrOutput { + return o +} + +func (o CustomDomainCertConfigPtrOutput) Elem() CustomDomainCertConfigOutput { + return o.ApplyT(func(v *CustomDomainCertConfig) CustomDomainCertConfig { + if v != nil { + return *v + } + var ret CustomDomainCertConfig + return ret + }).(CustomDomainCertConfigOutput) +} + +// SSL Certificates ID. +func (o CustomDomainCertConfigPtrOutput) CertificateId() pulumi.StringPtrOutput { + return o.ApplyT(func(v *CustomDomainCertConfig) *string { + if v == nil { + return nil + } + return v.CertificateId + }).(pulumi.StringPtrOutput) +} + +type CustomDomainEndpointsConfig struct { + // Function name. + FunctionName string `pulumi:"functionName"` + // Function namespace. + Namespace string `pulumi:"namespace"` + // Path, value specification: /,/*,/xxx,/xxx/a,/xxx/*. + PathMatch string `pulumi:"pathMatch"` + // Path rewriting policy. + PathRewrites []CustomDomainEndpointsConfigPathRewrite `pulumi:"pathRewrites"` + // Function alias or version. + Qualifier string `pulumi:"qualifier"` +} + +// CustomDomainEndpointsConfigInput is an input type that accepts CustomDomainEndpointsConfigArgs and CustomDomainEndpointsConfigOutput values. +// You can construct a concrete instance of `CustomDomainEndpointsConfigInput` via: +// +// CustomDomainEndpointsConfigArgs{...} +type CustomDomainEndpointsConfigInput interface { + pulumi.Input + + ToCustomDomainEndpointsConfigOutput() CustomDomainEndpointsConfigOutput + ToCustomDomainEndpointsConfigOutputWithContext(context.Context) CustomDomainEndpointsConfigOutput +} + +type CustomDomainEndpointsConfigArgs struct { + // Function name. + FunctionName pulumi.StringInput `pulumi:"functionName"` + // Function namespace. + Namespace pulumi.StringInput `pulumi:"namespace"` + // Path, value specification: /,/*,/xxx,/xxx/a,/xxx/*. + PathMatch pulumi.StringInput `pulumi:"pathMatch"` + // Path rewriting policy. + PathRewrites CustomDomainEndpointsConfigPathRewriteArrayInput `pulumi:"pathRewrites"` + // Function alias or version. + Qualifier pulumi.StringInput `pulumi:"qualifier"` +} + +func (CustomDomainEndpointsConfigArgs) ElementType() reflect.Type { + return reflect.TypeOf((*CustomDomainEndpointsConfig)(nil)).Elem() +} + +func (i CustomDomainEndpointsConfigArgs) ToCustomDomainEndpointsConfigOutput() CustomDomainEndpointsConfigOutput { + return i.ToCustomDomainEndpointsConfigOutputWithContext(context.Background()) +} + +func (i CustomDomainEndpointsConfigArgs) ToCustomDomainEndpointsConfigOutputWithContext(ctx context.Context) CustomDomainEndpointsConfigOutput { + return pulumi.ToOutputWithContext(ctx, i).(CustomDomainEndpointsConfigOutput) +} + +// CustomDomainEndpointsConfigArrayInput is an input type that accepts CustomDomainEndpointsConfigArray and CustomDomainEndpointsConfigArrayOutput values. +// You can construct a concrete instance of `CustomDomainEndpointsConfigArrayInput` via: +// +// CustomDomainEndpointsConfigArray{ CustomDomainEndpointsConfigArgs{...} } +type CustomDomainEndpointsConfigArrayInput interface { + pulumi.Input + + ToCustomDomainEndpointsConfigArrayOutput() CustomDomainEndpointsConfigArrayOutput + ToCustomDomainEndpointsConfigArrayOutputWithContext(context.Context) CustomDomainEndpointsConfigArrayOutput +} + +type CustomDomainEndpointsConfigArray []CustomDomainEndpointsConfigInput + +func (CustomDomainEndpointsConfigArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]CustomDomainEndpointsConfig)(nil)).Elem() +} + +func (i CustomDomainEndpointsConfigArray) ToCustomDomainEndpointsConfigArrayOutput() CustomDomainEndpointsConfigArrayOutput { + return i.ToCustomDomainEndpointsConfigArrayOutputWithContext(context.Background()) +} + +func (i CustomDomainEndpointsConfigArray) ToCustomDomainEndpointsConfigArrayOutputWithContext(ctx context.Context) CustomDomainEndpointsConfigArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(CustomDomainEndpointsConfigArrayOutput) +} + +type CustomDomainEndpointsConfigOutput struct{ *pulumi.OutputState } + +func (CustomDomainEndpointsConfigOutput) ElementType() reflect.Type { + return reflect.TypeOf((*CustomDomainEndpointsConfig)(nil)).Elem() +} + +func (o CustomDomainEndpointsConfigOutput) ToCustomDomainEndpointsConfigOutput() CustomDomainEndpointsConfigOutput { + return o +} + +func (o CustomDomainEndpointsConfigOutput) ToCustomDomainEndpointsConfigOutputWithContext(ctx context.Context) CustomDomainEndpointsConfigOutput { + return o +} + +// Function name. +func (o CustomDomainEndpointsConfigOutput) FunctionName() pulumi.StringOutput { + return o.ApplyT(func(v CustomDomainEndpointsConfig) string { return v.FunctionName }).(pulumi.StringOutput) +} + +// Function namespace. +func (o CustomDomainEndpointsConfigOutput) Namespace() pulumi.StringOutput { + return o.ApplyT(func(v CustomDomainEndpointsConfig) string { return v.Namespace }).(pulumi.StringOutput) +} + +// Path, value specification: /,/*,/xxx,/xxx/a,/xxx/*. +func (o CustomDomainEndpointsConfigOutput) PathMatch() pulumi.StringOutput { + return o.ApplyT(func(v CustomDomainEndpointsConfig) string { return v.PathMatch }).(pulumi.StringOutput) +} + +// Path rewriting policy. +func (o CustomDomainEndpointsConfigOutput) PathRewrites() CustomDomainEndpointsConfigPathRewriteArrayOutput { + return o.ApplyT(func(v CustomDomainEndpointsConfig) []CustomDomainEndpointsConfigPathRewrite { return v.PathRewrites }).(CustomDomainEndpointsConfigPathRewriteArrayOutput) +} + +// Function alias or version. +func (o CustomDomainEndpointsConfigOutput) Qualifier() pulumi.StringOutput { + return o.ApplyT(func(v CustomDomainEndpointsConfig) string { return v.Qualifier }).(pulumi.StringOutput) +} + +type CustomDomainEndpointsConfigArrayOutput struct{ *pulumi.OutputState } + +func (CustomDomainEndpointsConfigArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]CustomDomainEndpointsConfig)(nil)).Elem() +} + +func (o CustomDomainEndpointsConfigArrayOutput) ToCustomDomainEndpointsConfigArrayOutput() CustomDomainEndpointsConfigArrayOutput { + return o +} + +func (o CustomDomainEndpointsConfigArrayOutput) ToCustomDomainEndpointsConfigArrayOutputWithContext(ctx context.Context) CustomDomainEndpointsConfigArrayOutput { + return o +} + +func (o CustomDomainEndpointsConfigArrayOutput) Index(i pulumi.IntInput) CustomDomainEndpointsConfigOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) CustomDomainEndpointsConfig { + return vs[0].([]CustomDomainEndpointsConfig)[vs[1].(int)] + }).(CustomDomainEndpointsConfigOutput) +} + +type CustomDomainEndpointsConfigPathRewrite struct { + // Path that needs to be rerouted, value specification: /,/*,/xxx,/xxx/a,/xxx/*. + Path string `pulumi:"path"` + // Replacement values: such as/, /$. + Rewrite string `pulumi:"rewrite"` + // Matching rules, value range: WildcardRules wildcard matching, ExactRules exact matching. + Type string `pulumi:"type"` +} + +// CustomDomainEndpointsConfigPathRewriteInput is an input type that accepts CustomDomainEndpointsConfigPathRewriteArgs and CustomDomainEndpointsConfigPathRewriteOutput values. +// You can construct a concrete instance of `CustomDomainEndpointsConfigPathRewriteInput` via: +// +// CustomDomainEndpointsConfigPathRewriteArgs{...} +type CustomDomainEndpointsConfigPathRewriteInput interface { + pulumi.Input + + ToCustomDomainEndpointsConfigPathRewriteOutput() CustomDomainEndpointsConfigPathRewriteOutput + ToCustomDomainEndpointsConfigPathRewriteOutputWithContext(context.Context) CustomDomainEndpointsConfigPathRewriteOutput +} + +type CustomDomainEndpointsConfigPathRewriteArgs struct { + // Path that needs to be rerouted, value specification: /,/*,/xxx,/xxx/a,/xxx/*. + Path pulumi.StringInput `pulumi:"path"` + // Replacement values: such as/, /$. + Rewrite pulumi.StringInput `pulumi:"rewrite"` + // Matching rules, value range: WildcardRules wildcard matching, ExactRules exact matching. + Type pulumi.StringInput `pulumi:"type"` +} + +func (CustomDomainEndpointsConfigPathRewriteArgs) ElementType() reflect.Type { + return reflect.TypeOf((*CustomDomainEndpointsConfigPathRewrite)(nil)).Elem() +} + +func (i CustomDomainEndpointsConfigPathRewriteArgs) ToCustomDomainEndpointsConfigPathRewriteOutput() CustomDomainEndpointsConfigPathRewriteOutput { + return i.ToCustomDomainEndpointsConfigPathRewriteOutputWithContext(context.Background()) +} + +func (i CustomDomainEndpointsConfigPathRewriteArgs) ToCustomDomainEndpointsConfigPathRewriteOutputWithContext(ctx context.Context) CustomDomainEndpointsConfigPathRewriteOutput { + return pulumi.ToOutputWithContext(ctx, i).(CustomDomainEndpointsConfigPathRewriteOutput) +} + +// CustomDomainEndpointsConfigPathRewriteArrayInput is an input type that accepts CustomDomainEndpointsConfigPathRewriteArray and CustomDomainEndpointsConfigPathRewriteArrayOutput values. +// You can construct a concrete instance of `CustomDomainEndpointsConfigPathRewriteArrayInput` via: +// +// CustomDomainEndpointsConfigPathRewriteArray{ CustomDomainEndpointsConfigPathRewriteArgs{...} } +type CustomDomainEndpointsConfigPathRewriteArrayInput interface { + pulumi.Input + + ToCustomDomainEndpointsConfigPathRewriteArrayOutput() CustomDomainEndpointsConfigPathRewriteArrayOutput + ToCustomDomainEndpointsConfigPathRewriteArrayOutputWithContext(context.Context) CustomDomainEndpointsConfigPathRewriteArrayOutput +} + +type CustomDomainEndpointsConfigPathRewriteArray []CustomDomainEndpointsConfigPathRewriteInput + +func (CustomDomainEndpointsConfigPathRewriteArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]CustomDomainEndpointsConfigPathRewrite)(nil)).Elem() +} + +func (i CustomDomainEndpointsConfigPathRewriteArray) ToCustomDomainEndpointsConfigPathRewriteArrayOutput() CustomDomainEndpointsConfigPathRewriteArrayOutput { + return i.ToCustomDomainEndpointsConfigPathRewriteArrayOutputWithContext(context.Background()) +} + +func (i CustomDomainEndpointsConfigPathRewriteArray) ToCustomDomainEndpointsConfigPathRewriteArrayOutputWithContext(ctx context.Context) CustomDomainEndpointsConfigPathRewriteArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(CustomDomainEndpointsConfigPathRewriteArrayOutput) +} + +type CustomDomainEndpointsConfigPathRewriteOutput struct{ *pulumi.OutputState } + +func (CustomDomainEndpointsConfigPathRewriteOutput) ElementType() reflect.Type { + return reflect.TypeOf((*CustomDomainEndpointsConfigPathRewrite)(nil)).Elem() +} + +func (o CustomDomainEndpointsConfigPathRewriteOutput) ToCustomDomainEndpointsConfigPathRewriteOutput() CustomDomainEndpointsConfigPathRewriteOutput { + return o +} + +func (o CustomDomainEndpointsConfigPathRewriteOutput) ToCustomDomainEndpointsConfigPathRewriteOutputWithContext(ctx context.Context) CustomDomainEndpointsConfigPathRewriteOutput { + return o +} + +// Path that needs to be rerouted, value specification: /,/*,/xxx,/xxx/a,/xxx/*. +func (o CustomDomainEndpointsConfigPathRewriteOutput) Path() pulumi.StringOutput { + return o.ApplyT(func(v CustomDomainEndpointsConfigPathRewrite) string { return v.Path }).(pulumi.StringOutput) +} + +// Replacement values: such as/, /$. +func (o CustomDomainEndpointsConfigPathRewriteOutput) Rewrite() pulumi.StringOutput { + return o.ApplyT(func(v CustomDomainEndpointsConfigPathRewrite) string { return v.Rewrite }).(pulumi.StringOutput) +} + +// Matching rules, value range: WildcardRules wildcard matching, ExactRules exact matching. +func (o CustomDomainEndpointsConfigPathRewriteOutput) Type() pulumi.StringOutput { + return o.ApplyT(func(v CustomDomainEndpointsConfigPathRewrite) string { return v.Type }).(pulumi.StringOutput) +} + +type CustomDomainEndpointsConfigPathRewriteArrayOutput struct{ *pulumi.OutputState } + +func (CustomDomainEndpointsConfigPathRewriteArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]CustomDomainEndpointsConfigPathRewrite)(nil)).Elem() +} + +func (o CustomDomainEndpointsConfigPathRewriteArrayOutput) ToCustomDomainEndpointsConfigPathRewriteArrayOutput() CustomDomainEndpointsConfigPathRewriteArrayOutput { + return o +} + +func (o CustomDomainEndpointsConfigPathRewriteArrayOutput) ToCustomDomainEndpointsConfigPathRewriteArrayOutputWithContext(ctx context.Context) CustomDomainEndpointsConfigPathRewriteArrayOutput { + return o +} + +func (o CustomDomainEndpointsConfigPathRewriteArrayOutput) Index(i pulumi.IntInput) CustomDomainEndpointsConfigPathRewriteOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) CustomDomainEndpointsConfigPathRewrite { + return vs[0].([]CustomDomainEndpointsConfigPathRewrite)[vs[1].(int)] + }).(CustomDomainEndpointsConfigPathRewriteOutput) +} + +type CustomDomainWafConfig struct { + // Web Application Firewall Instance ID. + WafInstanceId *string `pulumi:"wafInstanceId"` + // Whether the Web Application Firewall is turned on, value range:OPEN, CLOSE. + WafOpen *string `pulumi:"wafOpen"` +} + +// CustomDomainWafConfigInput is an input type that accepts CustomDomainWafConfigArgs and CustomDomainWafConfigOutput values. +// You can construct a concrete instance of `CustomDomainWafConfigInput` via: +// +// CustomDomainWafConfigArgs{...} +type CustomDomainWafConfigInput interface { + pulumi.Input + + ToCustomDomainWafConfigOutput() CustomDomainWafConfigOutput + ToCustomDomainWafConfigOutputWithContext(context.Context) CustomDomainWafConfigOutput +} + +type CustomDomainWafConfigArgs struct { + // Web Application Firewall Instance ID. + WafInstanceId pulumi.StringPtrInput `pulumi:"wafInstanceId"` + // Whether the Web Application Firewall is turned on, value range:OPEN, CLOSE. + WafOpen pulumi.StringPtrInput `pulumi:"wafOpen"` +} + +func (CustomDomainWafConfigArgs) ElementType() reflect.Type { + return reflect.TypeOf((*CustomDomainWafConfig)(nil)).Elem() +} + +func (i CustomDomainWafConfigArgs) ToCustomDomainWafConfigOutput() CustomDomainWafConfigOutput { + return i.ToCustomDomainWafConfigOutputWithContext(context.Background()) +} + +func (i CustomDomainWafConfigArgs) ToCustomDomainWafConfigOutputWithContext(ctx context.Context) CustomDomainWafConfigOutput { + return pulumi.ToOutputWithContext(ctx, i).(CustomDomainWafConfigOutput) +} + +func (i CustomDomainWafConfigArgs) ToCustomDomainWafConfigPtrOutput() CustomDomainWafConfigPtrOutput { + return i.ToCustomDomainWafConfigPtrOutputWithContext(context.Background()) +} + +func (i CustomDomainWafConfigArgs) ToCustomDomainWafConfigPtrOutputWithContext(ctx context.Context) CustomDomainWafConfigPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(CustomDomainWafConfigOutput).ToCustomDomainWafConfigPtrOutputWithContext(ctx) +} + +// CustomDomainWafConfigPtrInput is an input type that accepts CustomDomainWafConfigArgs, CustomDomainWafConfigPtr and CustomDomainWafConfigPtrOutput values. +// You can construct a concrete instance of `CustomDomainWafConfigPtrInput` via: +// +// CustomDomainWafConfigArgs{...} +// +// or: +// +// nil +type CustomDomainWafConfigPtrInput interface { + pulumi.Input + + ToCustomDomainWafConfigPtrOutput() CustomDomainWafConfigPtrOutput + ToCustomDomainWafConfigPtrOutputWithContext(context.Context) CustomDomainWafConfigPtrOutput +} + +type customDomainWafConfigPtrType CustomDomainWafConfigArgs + +func CustomDomainWafConfigPtr(v *CustomDomainWafConfigArgs) CustomDomainWafConfigPtrInput { + return (*customDomainWafConfigPtrType)(v) +} + +func (*customDomainWafConfigPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**CustomDomainWafConfig)(nil)).Elem() +} + +func (i *customDomainWafConfigPtrType) ToCustomDomainWafConfigPtrOutput() CustomDomainWafConfigPtrOutput { + return i.ToCustomDomainWafConfigPtrOutputWithContext(context.Background()) +} + +func (i *customDomainWafConfigPtrType) ToCustomDomainWafConfigPtrOutputWithContext(ctx context.Context) CustomDomainWafConfigPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(CustomDomainWafConfigPtrOutput) +} + +type CustomDomainWafConfigOutput struct{ *pulumi.OutputState } + +func (CustomDomainWafConfigOutput) ElementType() reflect.Type { + return reflect.TypeOf((*CustomDomainWafConfig)(nil)).Elem() +} + +func (o CustomDomainWafConfigOutput) ToCustomDomainWafConfigOutput() CustomDomainWafConfigOutput { + return o +} + +func (o CustomDomainWafConfigOutput) ToCustomDomainWafConfigOutputWithContext(ctx context.Context) CustomDomainWafConfigOutput { + return o +} + +func (o CustomDomainWafConfigOutput) ToCustomDomainWafConfigPtrOutput() CustomDomainWafConfigPtrOutput { + return o.ToCustomDomainWafConfigPtrOutputWithContext(context.Background()) +} + +func (o CustomDomainWafConfigOutput) ToCustomDomainWafConfigPtrOutputWithContext(ctx context.Context) CustomDomainWafConfigPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v CustomDomainWafConfig) *CustomDomainWafConfig { + return &v + }).(CustomDomainWafConfigPtrOutput) +} + +// Web Application Firewall Instance ID. +func (o CustomDomainWafConfigOutput) WafInstanceId() pulumi.StringPtrOutput { + return o.ApplyT(func(v CustomDomainWafConfig) *string { return v.WafInstanceId }).(pulumi.StringPtrOutput) +} + +// Whether the Web Application Firewall is turned on, value range:OPEN, CLOSE. +func (o CustomDomainWafConfigOutput) WafOpen() pulumi.StringPtrOutput { + return o.ApplyT(func(v CustomDomainWafConfig) *string { return v.WafOpen }).(pulumi.StringPtrOutput) +} + +type CustomDomainWafConfigPtrOutput struct{ *pulumi.OutputState } + +func (CustomDomainWafConfigPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**CustomDomainWafConfig)(nil)).Elem() +} + +func (o CustomDomainWafConfigPtrOutput) ToCustomDomainWafConfigPtrOutput() CustomDomainWafConfigPtrOutput { + return o +} + +func (o CustomDomainWafConfigPtrOutput) ToCustomDomainWafConfigPtrOutputWithContext(ctx context.Context) CustomDomainWafConfigPtrOutput { + return o +} + +func (o CustomDomainWafConfigPtrOutput) Elem() CustomDomainWafConfigOutput { + return o.ApplyT(func(v *CustomDomainWafConfig) CustomDomainWafConfig { + if v != nil { + return *v + } + var ret CustomDomainWafConfig + return ret + }).(CustomDomainWafConfigOutput) +} + +// Web Application Firewall Instance ID. +func (o CustomDomainWafConfigPtrOutput) WafInstanceId() pulumi.StringPtrOutput { + return o.ApplyT(func(v *CustomDomainWafConfig) *string { + if v == nil { + return nil + } + return v.WafInstanceId + }).(pulumi.StringPtrOutput) +} + +// Whether the Web Application Firewall is turned on, value range:OPEN, CLOSE. +func (o CustomDomainWafConfigPtrOutput) WafOpen() pulumi.StringPtrOutput { + return o.ApplyT(func(v *CustomDomainWafConfig) *string { + if v == nil { + return nil + } + return v.WafOpen + }).(pulumi.StringPtrOutput) +} + type FunctionAliasRoutingConfig struct { // Additional version with rule-based routing. AdditionalVersionMatches []FunctionAliasRoutingConfigAdditionalVersionMatch `pulumi:"additionalVersionMatches"` @@ -5403,6 +5944,14 @@ func (o GetTriggersTriggerArrayOutput) Index(i pulumi.IntInput) GetTriggersTrigg } func init() { + pulumi.RegisterInputType(reflect.TypeOf((*CustomDomainCertConfigInput)(nil)).Elem(), CustomDomainCertConfigArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*CustomDomainCertConfigPtrInput)(nil)).Elem(), CustomDomainCertConfigArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*CustomDomainEndpointsConfigInput)(nil)).Elem(), CustomDomainEndpointsConfigArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*CustomDomainEndpointsConfigArrayInput)(nil)).Elem(), CustomDomainEndpointsConfigArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*CustomDomainEndpointsConfigPathRewriteInput)(nil)).Elem(), CustomDomainEndpointsConfigPathRewriteArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*CustomDomainEndpointsConfigPathRewriteArrayInput)(nil)).Elem(), CustomDomainEndpointsConfigPathRewriteArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*CustomDomainWafConfigInput)(nil)).Elem(), CustomDomainWafConfigArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*CustomDomainWafConfigPtrInput)(nil)).Elem(), CustomDomainWafConfigArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*FunctionAliasRoutingConfigInput)(nil)).Elem(), FunctionAliasRoutingConfigArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*FunctionAliasRoutingConfigPtrInput)(nil)).Elem(), FunctionAliasRoutingConfigArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*FunctionAliasRoutingConfigAdditionalVersionMatchInput)(nil)).Elem(), FunctionAliasRoutingConfigAdditionalVersionMatchArgs{}) @@ -5475,6 +6024,14 @@ func init() { pulumi.RegisterInputType(reflect.TypeOf((*GetTriggersFilterArrayInput)(nil)).Elem(), GetTriggersFilterArray{}) pulumi.RegisterInputType(reflect.TypeOf((*GetTriggersTriggerInput)(nil)).Elem(), GetTriggersTriggerArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*GetTriggersTriggerArrayInput)(nil)).Elem(), GetTriggersTriggerArray{}) + pulumi.RegisterOutputType(CustomDomainCertConfigOutput{}) + pulumi.RegisterOutputType(CustomDomainCertConfigPtrOutput{}) + pulumi.RegisterOutputType(CustomDomainEndpointsConfigOutput{}) + pulumi.RegisterOutputType(CustomDomainEndpointsConfigArrayOutput{}) + pulumi.RegisterOutputType(CustomDomainEndpointsConfigPathRewriteOutput{}) + pulumi.RegisterOutputType(CustomDomainEndpointsConfigPathRewriteArrayOutput{}) + pulumi.RegisterOutputType(CustomDomainWafConfigOutput{}) + pulumi.RegisterOutputType(CustomDomainWafConfigPtrOutput{}) pulumi.RegisterOutputType(FunctionAliasRoutingConfigOutput{}) pulumi.RegisterOutputType(FunctionAliasRoutingConfigPtrOutput{}) pulumi.RegisterOutputType(FunctionAliasRoutingConfigAdditionalVersionMatchOutput{}) diff --git a/sdk/go/tencentcloud/vpn/connection.go b/sdk/go/tencentcloud/vpn/connection.go index b7a07fb72..25b023508 100644 --- a/sdk/go/tencentcloud/vpn/connection.go +++ b/sdk/go/tencentcloud/vpn/connection.go @@ -29,23 +29,34 @@ import ( // // func main() { // pulumi.Run(func(ctx *pulumi.Context) error { -// _, err := Vpn.NewConnection(ctx, "foo", &Vpn.ConnectionArgs{ -// CustomerGatewayId: pulumi.String("cgw-xfqag"), +// _, err := Vpn.NewConnection(ctx, "example", &Vpn.ConnectionArgs{ +// CustomerGatewayId: pulumi.String("cgw-e503id2z"), +// EnableHealthCheck: pulumi.Bool(true), +// HealthCheckConfig: &vpn.ConnectionHealthCheckConfigArgs{ +// ProbeInterval: pulumi.Int(5000), +// ProbeThreshold: pulumi.Int(3), +// ProbeTimeout: pulumi.Int(150), +// ProbeType: pulumi.String("NQA"), +// }, +// HealthCheckLocalIp: pulumi.String("169.254.227.187"), +// HealthCheckRemoteIp: pulumi.String("169.254.164.37"), // IkeDhGroupName: pulumi.String("GROUP2"), // IkeExchangeMode: pulumi.String("AGGRESSIVE"), -// IkeLocalAddress: pulumi.String("1.1.1.1"), +// IkeLocalAddress: pulumi.String("159.75.204.38"), // IkeLocalIdentity: pulumi.String("ADDRESS"), // IkeProtoAuthenAlgorithm: pulumi.String("SHA"), // IkeProtoEncryAlgorithm: pulumi.String("3DES-CBC"), -// IkeRemoteAddress: pulumi.String("2.2.2.2"), +// IkeRemoteAddress: pulumi.String("109.244.60.154"), // IkeRemoteIdentity: pulumi.String("ADDRESS"), -// IkeSaLifetimeSeconds: pulumi.Int(86401), +// IkeSaLifetimeSeconds: pulumi.Int(86400), // IpsecEncryptAlgorithm: pulumi.String("3DES-CBC"), // IpsecIntegrityAlgorithm: pulumi.String("SHA1"), // IpsecPfsDhGroup: pulumi.String("NULL"), -// IpsecSaLifetimeSeconds: pulumi.Int(7200), -// IpsecSaLifetimeTraffic: pulumi.Int(2570), -// PreShareKey: pulumi.String("testt"), +// IpsecSaLifetimeSeconds: pulumi.Int(14400), +// IpsecSaLifetimeTraffic: pulumi.Int(4096000000), +// NegotiationType: pulumi.String("flowTrigger"), +// PreShareKey: pulumi.String("your_pre_share_key"), +// RouteType: pulumi.String("StaticRoute"), // SecurityGroupPolicies: vpn.ConnectionSecurityGroupPolicyArray{ // &vpn.ConnectionSecurityGroupPolicyArgs{ // LocalCidrBlock: pulumi.String("172.16.0.0/16"), @@ -55,10 +66,10 @@ import ( // }, // }, // Tags: pulumi.Map{ -// "test": pulumi.Any("testt"), +// "createBy": pulumi.Any("Terraform"), // }, -// VpcId: pulumi.String("vpc-dk8zmwuf"), -// VpnGatewayId: pulumi.String("vpngw-8ccsnclt"), +// VpcId: pulumi.String("vpc-6ccw0s5l"), +// VpnGatewayId: pulumi.String("vpngw-33p5vnwd"), // }) // if err != nil { // return err @@ -80,6 +91,8 @@ import ( type Connection struct { pulumi.CustomResourceState + // BGP config. + BgpConfig ConnectionBgpConfigOutput `pulumi:"bgpConfig"` // Create time of the VPN connection. CreateTime pulumi.StringOutput `pulumi:"createTime"` // ID of the customer gateway. @@ -94,6 +107,8 @@ type Connection struct { EnableHealthCheck pulumi.BoolOutput `pulumi:"enableHealthCheck"` // Encrypt proto of the VPN connection. EncryptProto pulumi.StringOutput `pulumi:"encryptProto"` + // VPN channel health check configuration. + HealthCheckConfig ConnectionHealthCheckConfigOutput `pulumi:"healthCheckConfig"` // Health check the address of this terminal. HealthCheckLocalIp pulumi.StringOutput `pulumi:"healthCheckLocalIp"` // Health check peer address. @@ -136,11 +151,13 @@ type Connection struct { IsCcnType pulumi.BoolOutput `pulumi:"isCcnType"` // Name of the VPN connection. The length of character is limited to 1-60. Name pulumi.StringOutput `pulumi:"name"` + // The default negotiation type is `active`. Optional values: `active` (active negotiation), `passive` (passive negotiation), `flowTrigger` (traffic negotiation). + NegotiationType pulumi.StringOutput `pulumi:"negotiationType"` // Net status of the VPN connection. Valid value: `AVAILABLE`. NetStatus pulumi.StringOutput `pulumi:"netStatus"` // Pre-shared key of the VPN connection. PreShareKey pulumi.StringOutput `pulumi:"preShareKey"` - // Route type of the VPN connection. Valid value: `STATIC`, `StaticRoute`, `Policy`. + // Route type of the VPN connection. Valid value: `STATIC`, `StaticRoute`, `Policy`, `Bgp`. RouteType pulumi.StringOutput `pulumi:"routeType"` // SPD policy group, for example: {"10.0.0.5/24":["172.123.10.5/16"]}, 10.0.0.5/24 is the vpc intranet segment, and 172.123.10.5/16 is the IDC network segment. Users specify which network segments in the VPC can communicate with which network segments in your IDC. SecurityGroupPolicies ConnectionSecurityGroupPolicyArrayOutput `pulumi:"securityGroupPolicies"` @@ -195,6 +212,8 @@ func GetConnection(ctx *pulumi.Context, // Input properties used for looking up and filtering Connection resources. type connectionState struct { + // BGP config. + BgpConfig *ConnectionBgpConfig `pulumi:"bgpConfig"` // Create time of the VPN connection. CreateTime *string `pulumi:"createTime"` // ID of the customer gateway. @@ -209,6 +228,8 @@ type connectionState struct { EnableHealthCheck *bool `pulumi:"enableHealthCheck"` // Encrypt proto of the VPN connection. EncryptProto *string `pulumi:"encryptProto"` + // VPN channel health check configuration. + HealthCheckConfig *ConnectionHealthCheckConfig `pulumi:"healthCheckConfig"` // Health check the address of this terminal. HealthCheckLocalIp *string `pulumi:"healthCheckLocalIp"` // Health check peer address. @@ -251,11 +272,13 @@ type connectionState struct { IsCcnType *bool `pulumi:"isCcnType"` // Name of the VPN connection. The length of character is limited to 1-60. Name *string `pulumi:"name"` + // The default negotiation type is `active`. Optional values: `active` (active negotiation), `passive` (passive negotiation), `flowTrigger` (traffic negotiation). + NegotiationType *string `pulumi:"negotiationType"` // Net status of the VPN connection. Valid value: `AVAILABLE`. NetStatus *string `pulumi:"netStatus"` // Pre-shared key of the VPN connection. PreShareKey *string `pulumi:"preShareKey"` - // Route type of the VPN connection. Valid value: `STATIC`, `StaticRoute`, `Policy`. + // Route type of the VPN connection. Valid value: `STATIC`, `StaticRoute`, `Policy`, `Bgp`. RouteType *string `pulumi:"routeType"` // SPD policy group, for example: {"10.0.0.5/24":["172.123.10.5/16"]}, 10.0.0.5/24 is the vpc intranet segment, and 172.123.10.5/16 is the IDC network segment. Users specify which network segments in the VPC can communicate with which network segments in your IDC. SecurityGroupPolicies []ConnectionSecurityGroupPolicy `pulumi:"securityGroupPolicies"` @@ -272,6 +295,8 @@ type connectionState struct { } type ConnectionState struct { + // BGP config. + BgpConfig ConnectionBgpConfigPtrInput // Create time of the VPN connection. CreateTime pulumi.StringPtrInput // ID of the customer gateway. @@ -286,6 +311,8 @@ type ConnectionState struct { EnableHealthCheck pulumi.BoolPtrInput // Encrypt proto of the VPN connection. EncryptProto pulumi.StringPtrInput + // VPN channel health check configuration. + HealthCheckConfig ConnectionHealthCheckConfigPtrInput // Health check the address of this terminal. HealthCheckLocalIp pulumi.StringPtrInput // Health check peer address. @@ -328,11 +355,13 @@ type ConnectionState struct { IsCcnType pulumi.BoolPtrInput // Name of the VPN connection. The length of character is limited to 1-60. Name pulumi.StringPtrInput + // The default negotiation type is `active`. Optional values: `active` (active negotiation), `passive` (passive negotiation), `flowTrigger` (traffic negotiation). + NegotiationType pulumi.StringPtrInput // Net status of the VPN connection. Valid value: `AVAILABLE`. NetStatus pulumi.StringPtrInput // Pre-shared key of the VPN connection. PreShareKey pulumi.StringPtrInput - // Route type of the VPN connection. Valid value: `STATIC`, `StaticRoute`, `Policy`. + // Route type of the VPN connection. Valid value: `STATIC`, `StaticRoute`, `Policy`, `Bgp`. RouteType pulumi.StringPtrInput // SPD policy group, for example: {"10.0.0.5/24":["172.123.10.5/16"]}, 10.0.0.5/24 is the vpc intranet segment, and 172.123.10.5/16 is the IDC network segment. Users specify which network segments in the VPC can communicate with which network segments in your IDC. SecurityGroupPolicies ConnectionSecurityGroupPolicyArrayInput @@ -353,6 +382,8 @@ func (ConnectionState) ElementType() reflect.Type { } type connectionArgs struct { + // BGP config. + BgpConfig *ConnectionBgpConfig `pulumi:"bgpConfig"` // ID of the customer gateway. CustomerGatewayId string `pulumi:"customerGatewayId"` // The action after DPD timeout. Valid values: clear (disconnect) and restart (try again). It is valid when DpdEnable is 1. @@ -363,6 +394,8 @@ type connectionArgs struct { DpdTimeout *int `pulumi:"dpdTimeout"` // Whether intra-tunnel health checks are supported. EnableHealthCheck *bool `pulumi:"enableHealthCheck"` + // VPN channel health check configuration. + HealthCheckConfig *ConnectionHealthCheckConfig `pulumi:"healthCheckConfig"` // Health check the address of this terminal. HealthCheckLocalIp *string `pulumi:"healthCheckLocalIp"` // Health check peer address. @@ -403,9 +436,11 @@ type connectionArgs struct { IpsecSaLifetimeTraffic *int `pulumi:"ipsecSaLifetimeTraffic"` // Name of the VPN connection. The length of character is limited to 1-60. Name *string `pulumi:"name"` + // The default negotiation type is `active`. Optional values: `active` (active negotiation), `passive` (passive negotiation), `flowTrigger` (traffic negotiation). + NegotiationType *string `pulumi:"negotiationType"` // Pre-shared key of the VPN connection. PreShareKey string `pulumi:"preShareKey"` - // Route type of the VPN connection. Valid value: `STATIC`, `StaticRoute`, `Policy`. + // Route type of the VPN connection. Valid value: `STATIC`, `StaticRoute`, `Policy`, `Bgp`. RouteType *string `pulumi:"routeType"` // SPD policy group, for example: {"10.0.0.5/24":["172.123.10.5/16"]}, 10.0.0.5/24 is the vpc intranet segment, and 172.123.10.5/16 is the IDC network segment. Users specify which network segments in the VPC can communicate with which network segments in your IDC. SecurityGroupPolicies []ConnectionSecurityGroupPolicy `pulumi:"securityGroupPolicies"` @@ -419,6 +454,8 @@ type connectionArgs struct { // The set of arguments for constructing a Connection resource. type ConnectionArgs struct { + // BGP config. + BgpConfig ConnectionBgpConfigPtrInput // ID of the customer gateway. CustomerGatewayId pulumi.StringInput // The action after DPD timeout. Valid values: clear (disconnect) and restart (try again). It is valid when DpdEnable is 1. @@ -429,6 +466,8 @@ type ConnectionArgs struct { DpdTimeout pulumi.IntPtrInput // Whether intra-tunnel health checks are supported. EnableHealthCheck pulumi.BoolPtrInput + // VPN channel health check configuration. + HealthCheckConfig ConnectionHealthCheckConfigPtrInput // Health check the address of this terminal. HealthCheckLocalIp pulumi.StringPtrInput // Health check peer address. @@ -469,9 +508,11 @@ type ConnectionArgs struct { IpsecSaLifetimeTraffic pulumi.IntPtrInput // Name of the VPN connection. The length of character is limited to 1-60. Name pulumi.StringPtrInput + // The default negotiation type is `active`. Optional values: `active` (active negotiation), `passive` (passive negotiation), `flowTrigger` (traffic negotiation). + NegotiationType pulumi.StringPtrInput // Pre-shared key of the VPN connection. PreShareKey pulumi.StringInput - // Route type of the VPN connection. Valid value: `STATIC`, `StaticRoute`, `Policy`. + // Route type of the VPN connection. Valid value: `STATIC`, `StaticRoute`, `Policy`, `Bgp`. RouteType pulumi.StringPtrInput // SPD policy group, for example: {"10.0.0.5/24":["172.123.10.5/16"]}, 10.0.0.5/24 is the vpc intranet segment, and 172.123.10.5/16 is the IDC network segment. Users specify which network segments in the VPC can communicate with which network segments in your IDC. SecurityGroupPolicies ConnectionSecurityGroupPolicyArrayInput @@ -570,6 +611,11 @@ func (o ConnectionOutput) ToConnectionOutputWithContext(ctx context.Context) Con return o } +// BGP config. +func (o ConnectionOutput) BgpConfig() ConnectionBgpConfigOutput { + return o.ApplyT(func(v *Connection) ConnectionBgpConfigOutput { return v.BgpConfig }).(ConnectionBgpConfigOutput) +} + // Create time of the VPN connection. func (o ConnectionOutput) CreateTime() pulumi.StringOutput { return o.ApplyT(func(v *Connection) pulumi.StringOutput { return v.CreateTime }).(pulumi.StringOutput) @@ -605,6 +651,11 @@ func (o ConnectionOutput) EncryptProto() pulumi.StringOutput { return o.ApplyT(func(v *Connection) pulumi.StringOutput { return v.EncryptProto }).(pulumi.StringOutput) } +// VPN channel health check configuration. +func (o ConnectionOutput) HealthCheckConfig() ConnectionHealthCheckConfigOutput { + return o.ApplyT(func(v *Connection) ConnectionHealthCheckConfigOutput { return v.HealthCheckConfig }).(ConnectionHealthCheckConfigOutput) +} + // Health check the address of this terminal. func (o ConnectionOutput) HealthCheckLocalIp() pulumi.StringOutput { return o.ApplyT(func(v *Connection) pulumi.StringOutput { return v.HealthCheckLocalIp }).(pulumi.StringOutput) @@ -710,6 +761,11 @@ func (o ConnectionOutput) Name() pulumi.StringOutput { return o.ApplyT(func(v *Connection) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput) } +// The default negotiation type is `active`. Optional values: `active` (active negotiation), `passive` (passive negotiation), `flowTrigger` (traffic negotiation). +func (o ConnectionOutput) NegotiationType() pulumi.StringOutput { + return o.ApplyT(func(v *Connection) pulumi.StringOutput { return v.NegotiationType }).(pulumi.StringOutput) +} + // Net status of the VPN connection. Valid value: `AVAILABLE`. func (o ConnectionOutput) NetStatus() pulumi.StringOutput { return o.ApplyT(func(v *Connection) pulumi.StringOutput { return v.NetStatus }).(pulumi.StringOutput) @@ -720,7 +776,7 @@ func (o ConnectionOutput) PreShareKey() pulumi.StringOutput { return o.ApplyT(func(v *Connection) pulumi.StringOutput { return v.PreShareKey }).(pulumi.StringOutput) } -// Route type of the VPN connection. Valid value: `STATIC`, `StaticRoute`, `Policy`. +// Route type of the VPN connection. Valid value: `STATIC`, `StaticRoute`, `Policy`, `Bgp`. func (o ConnectionOutput) RouteType() pulumi.StringOutput { return o.ApplyT(func(v *Connection) pulumi.StringOutput { return v.RouteType }).(pulumi.StringOutput) } diff --git a/sdk/go/tencentcloud/vpn/pulumiTypes.go b/sdk/go/tencentcloud/vpn/pulumiTypes.go index 951a1c714..8e329579a 100644 --- a/sdk/go/tencentcloud/vpn/pulumiTypes.go +++ b/sdk/go/tencentcloud/vpn/pulumiTypes.go @@ -13,6 +13,375 @@ import ( var _ = internal.GetEnvOrDefault +type ConnectionBgpConfig struct { + // Cloud BGP address. It must be allocated from within the BGP tunnel network segment. + LocalBgpIp string `pulumi:"localBgpIp"` + // User side BGP address. It must be allocated from within the BGP tunnel network segment. + RemoteBgpIp string `pulumi:"remoteBgpIp"` + // BGP tunnel segment. + TunnelCidr string `pulumi:"tunnelCidr"` +} + +// ConnectionBgpConfigInput is an input type that accepts ConnectionBgpConfigArgs and ConnectionBgpConfigOutput values. +// You can construct a concrete instance of `ConnectionBgpConfigInput` via: +// +// ConnectionBgpConfigArgs{...} +type ConnectionBgpConfigInput interface { + pulumi.Input + + ToConnectionBgpConfigOutput() ConnectionBgpConfigOutput + ToConnectionBgpConfigOutputWithContext(context.Context) ConnectionBgpConfigOutput +} + +type ConnectionBgpConfigArgs struct { + // Cloud BGP address. It must be allocated from within the BGP tunnel network segment. + LocalBgpIp pulumi.StringInput `pulumi:"localBgpIp"` + // User side BGP address. It must be allocated from within the BGP tunnel network segment. + RemoteBgpIp pulumi.StringInput `pulumi:"remoteBgpIp"` + // BGP tunnel segment. + TunnelCidr pulumi.StringInput `pulumi:"tunnelCidr"` +} + +func (ConnectionBgpConfigArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ConnectionBgpConfig)(nil)).Elem() +} + +func (i ConnectionBgpConfigArgs) ToConnectionBgpConfigOutput() ConnectionBgpConfigOutput { + return i.ToConnectionBgpConfigOutputWithContext(context.Background()) +} + +func (i ConnectionBgpConfigArgs) ToConnectionBgpConfigOutputWithContext(ctx context.Context) ConnectionBgpConfigOutput { + return pulumi.ToOutputWithContext(ctx, i).(ConnectionBgpConfigOutput) +} + +func (i ConnectionBgpConfigArgs) ToConnectionBgpConfigPtrOutput() ConnectionBgpConfigPtrOutput { + return i.ToConnectionBgpConfigPtrOutputWithContext(context.Background()) +} + +func (i ConnectionBgpConfigArgs) ToConnectionBgpConfigPtrOutputWithContext(ctx context.Context) ConnectionBgpConfigPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ConnectionBgpConfigOutput).ToConnectionBgpConfigPtrOutputWithContext(ctx) +} + +// ConnectionBgpConfigPtrInput is an input type that accepts ConnectionBgpConfigArgs, ConnectionBgpConfigPtr and ConnectionBgpConfigPtrOutput values. +// You can construct a concrete instance of `ConnectionBgpConfigPtrInput` via: +// +// ConnectionBgpConfigArgs{...} +// +// or: +// +// nil +type ConnectionBgpConfigPtrInput interface { + pulumi.Input + + ToConnectionBgpConfigPtrOutput() ConnectionBgpConfigPtrOutput + ToConnectionBgpConfigPtrOutputWithContext(context.Context) ConnectionBgpConfigPtrOutput +} + +type connectionBgpConfigPtrType ConnectionBgpConfigArgs + +func ConnectionBgpConfigPtr(v *ConnectionBgpConfigArgs) ConnectionBgpConfigPtrInput { + return (*connectionBgpConfigPtrType)(v) +} + +func (*connectionBgpConfigPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**ConnectionBgpConfig)(nil)).Elem() +} + +func (i *connectionBgpConfigPtrType) ToConnectionBgpConfigPtrOutput() ConnectionBgpConfigPtrOutput { + return i.ToConnectionBgpConfigPtrOutputWithContext(context.Background()) +} + +func (i *connectionBgpConfigPtrType) ToConnectionBgpConfigPtrOutputWithContext(ctx context.Context) ConnectionBgpConfigPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ConnectionBgpConfigPtrOutput) +} + +type ConnectionBgpConfigOutput struct{ *pulumi.OutputState } + +func (ConnectionBgpConfigOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ConnectionBgpConfig)(nil)).Elem() +} + +func (o ConnectionBgpConfigOutput) ToConnectionBgpConfigOutput() ConnectionBgpConfigOutput { + return o +} + +func (o ConnectionBgpConfigOutput) ToConnectionBgpConfigOutputWithContext(ctx context.Context) ConnectionBgpConfigOutput { + return o +} + +func (o ConnectionBgpConfigOutput) ToConnectionBgpConfigPtrOutput() ConnectionBgpConfigPtrOutput { + return o.ToConnectionBgpConfigPtrOutputWithContext(context.Background()) +} + +func (o ConnectionBgpConfigOutput) ToConnectionBgpConfigPtrOutputWithContext(ctx context.Context) ConnectionBgpConfigPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v ConnectionBgpConfig) *ConnectionBgpConfig { + return &v + }).(ConnectionBgpConfigPtrOutput) +} + +// Cloud BGP address. It must be allocated from within the BGP tunnel network segment. +func (o ConnectionBgpConfigOutput) LocalBgpIp() pulumi.StringOutput { + return o.ApplyT(func(v ConnectionBgpConfig) string { return v.LocalBgpIp }).(pulumi.StringOutput) +} + +// User side BGP address. It must be allocated from within the BGP tunnel network segment. +func (o ConnectionBgpConfigOutput) RemoteBgpIp() pulumi.StringOutput { + return o.ApplyT(func(v ConnectionBgpConfig) string { return v.RemoteBgpIp }).(pulumi.StringOutput) +} + +// BGP tunnel segment. +func (o ConnectionBgpConfigOutput) TunnelCidr() pulumi.StringOutput { + return o.ApplyT(func(v ConnectionBgpConfig) string { return v.TunnelCidr }).(pulumi.StringOutput) +} + +type ConnectionBgpConfigPtrOutput struct{ *pulumi.OutputState } + +func (ConnectionBgpConfigPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**ConnectionBgpConfig)(nil)).Elem() +} + +func (o ConnectionBgpConfigPtrOutput) ToConnectionBgpConfigPtrOutput() ConnectionBgpConfigPtrOutput { + return o +} + +func (o ConnectionBgpConfigPtrOutput) ToConnectionBgpConfigPtrOutputWithContext(ctx context.Context) ConnectionBgpConfigPtrOutput { + return o +} + +func (o ConnectionBgpConfigPtrOutput) Elem() ConnectionBgpConfigOutput { + return o.ApplyT(func(v *ConnectionBgpConfig) ConnectionBgpConfig { + if v != nil { + return *v + } + var ret ConnectionBgpConfig + return ret + }).(ConnectionBgpConfigOutput) +} + +// Cloud BGP address. It must be allocated from within the BGP tunnel network segment. +func (o ConnectionBgpConfigPtrOutput) LocalBgpIp() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ConnectionBgpConfig) *string { + if v == nil { + return nil + } + return &v.LocalBgpIp + }).(pulumi.StringPtrOutput) +} + +// User side BGP address. It must be allocated from within the BGP tunnel network segment. +func (o ConnectionBgpConfigPtrOutput) RemoteBgpIp() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ConnectionBgpConfig) *string { + if v == nil { + return nil + } + return &v.RemoteBgpIp + }).(pulumi.StringPtrOutput) +} + +// BGP tunnel segment. +func (o ConnectionBgpConfigPtrOutput) TunnelCidr() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ConnectionBgpConfig) *string { + if v == nil { + return nil + } + return &v.TunnelCidr + }).(pulumi.StringPtrOutput) +} + +type ConnectionHealthCheckConfig struct { + // Detection interval, Tencent Cloud's interval between two health checks, range [1000-5000], Unit: ms. + ProbeInterval *int `pulumi:"probeInterval"` + // Detection times, perform route switching after N consecutive health check failures, range [3-8], Unit: times. + ProbeThreshold *int `pulumi:"probeThreshold"` + // Detection timeout, range [10-5000], Unit: ms. + ProbeTimeout *int `pulumi:"probeTimeout"` + // Detection mode, default is `NQA`, cannot be modified. + ProbeType *string `pulumi:"probeType"` +} + +// ConnectionHealthCheckConfigInput is an input type that accepts ConnectionHealthCheckConfigArgs and ConnectionHealthCheckConfigOutput values. +// You can construct a concrete instance of `ConnectionHealthCheckConfigInput` via: +// +// ConnectionHealthCheckConfigArgs{...} +type ConnectionHealthCheckConfigInput interface { + pulumi.Input + + ToConnectionHealthCheckConfigOutput() ConnectionHealthCheckConfigOutput + ToConnectionHealthCheckConfigOutputWithContext(context.Context) ConnectionHealthCheckConfigOutput +} + +type ConnectionHealthCheckConfigArgs struct { + // Detection interval, Tencent Cloud's interval between two health checks, range [1000-5000], Unit: ms. + ProbeInterval pulumi.IntPtrInput `pulumi:"probeInterval"` + // Detection times, perform route switching after N consecutive health check failures, range [3-8], Unit: times. + ProbeThreshold pulumi.IntPtrInput `pulumi:"probeThreshold"` + // Detection timeout, range [10-5000], Unit: ms. + ProbeTimeout pulumi.IntPtrInput `pulumi:"probeTimeout"` + // Detection mode, default is `NQA`, cannot be modified. + ProbeType pulumi.StringPtrInput `pulumi:"probeType"` +} + +func (ConnectionHealthCheckConfigArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ConnectionHealthCheckConfig)(nil)).Elem() +} + +func (i ConnectionHealthCheckConfigArgs) ToConnectionHealthCheckConfigOutput() ConnectionHealthCheckConfigOutput { + return i.ToConnectionHealthCheckConfigOutputWithContext(context.Background()) +} + +func (i ConnectionHealthCheckConfigArgs) ToConnectionHealthCheckConfigOutputWithContext(ctx context.Context) ConnectionHealthCheckConfigOutput { + return pulumi.ToOutputWithContext(ctx, i).(ConnectionHealthCheckConfigOutput) +} + +func (i ConnectionHealthCheckConfigArgs) ToConnectionHealthCheckConfigPtrOutput() ConnectionHealthCheckConfigPtrOutput { + return i.ToConnectionHealthCheckConfigPtrOutputWithContext(context.Background()) +} + +func (i ConnectionHealthCheckConfigArgs) ToConnectionHealthCheckConfigPtrOutputWithContext(ctx context.Context) ConnectionHealthCheckConfigPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ConnectionHealthCheckConfigOutput).ToConnectionHealthCheckConfigPtrOutputWithContext(ctx) +} + +// ConnectionHealthCheckConfigPtrInput is an input type that accepts ConnectionHealthCheckConfigArgs, ConnectionHealthCheckConfigPtr and ConnectionHealthCheckConfigPtrOutput values. +// You can construct a concrete instance of `ConnectionHealthCheckConfigPtrInput` via: +// +// ConnectionHealthCheckConfigArgs{...} +// +// or: +// +// nil +type ConnectionHealthCheckConfigPtrInput interface { + pulumi.Input + + ToConnectionHealthCheckConfigPtrOutput() ConnectionHealthCheckConfigPtrOutput + ToConnectionHealthCheckConfigPtrOutputWithContext(context.Context) ConnectionHealthCheckConfigPtrOutput +} + +type connectionHealthCheckConfigPtrType ConnectionHealthCheckConfigArgs + +func ConnectionHealthCheckConfigPtr(v *ConnectionHealthCheckConfigArgs) ConnectionHealthCheckConfigPtrInput { + return (*connectionHealthCheckConfigPtrType)(v) +} + +func (*connectionHealthCheckConfigPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**ConnectionHealthCheckConfig)(nil)).Elem() +} + +func (i *connectionHealthCheckConfigPtrType) ToConnectionHealthCheckConfigPtrOutput() ConnectionHealthCheckConfigPtrOutput { + return i.ToConnectionHealthCheckConfigPtrOutputWithContext(context.Background()) +} + +func (i *connectionHealthCheckConfigPtrType) ToConnectionHealthCheckConfigPtrOutputWithContext(ctx context.Context) ConnectionHealthCheckConfigPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ConnectionHealthCheckConfigPtrOutput) +} + +type ConnectionHealthCheckConfigOutput struct{ *pulumi.OutputState } + +func (ConnectionHealthCheckConfigOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ConnectionHealthCheckConfig)(nil)).Elem() +} + +func (o ConnectionHealthCheckConfigOutput) ToConnectionHealthCheckConfigOutput() ConnectionHealthCheckConfigOutput { + return o +} + +func (o ConnectionHealthCheckConfigOutput) ToConnectionHealthCheckConfigOutputWithContext(ctx context.Context) ConnectionHealthCheckConfigOutput { + return o +} + +func (o ConnectionHealthCheckConfigOutput) ToConnectionHealthCheckConfigPtrOutput() ConnectionHealthCheckConfigPtrOutput { + return o.ToConnectionHealthCheckConfigPtrOutputWithContext(context.Background()) +} + +func (o ConnectionHealthCheckConfigOutput) ToConnectionHealthCheckConfigPtrOutputWithContext(ctx context.Context) ConnectionHealthCheckConfigPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v ConnectionHealthCheckConfig) *ConnectionHealthCheckConfig { + return &v + }).(ConnectionHealthCheckConfigPtrOutput) +} + +// Detection interval, Tencent Cloud's interval between two health checks, range [1000-5000], Unit: ms. +func (o ConnectionHealthCheckConfigOutput) ProbeInterval() pulumi.IntPtrOutput { + return o.ApplyT(func(v ConnectionHealthCheckConfig) *int { return v.ProbeInterval }).(pulumi.IntPtrOutput) +} + +// Detection times, perform route switching after N consecutive health check failures, range [3-8], Unit: times. +func (o ConnectionHealthCheckConfigOutput) ProbeThreshold() pulumi.IntPtrOutput { + return o.ApplyT(func(v ConnectionHealthCheckConfig) *int { return v.ProbeThreshold }).(pulumi.IntPtrOutput) +} + +// Detection timeout, range [10-5000], Unit: ms. +func (o ConnectionHealthCheckConfigOutput) ProbeTimeout() pulumi.IntPtrOutput { + return o.ApplyT(func(v ConnectionHealthCheckConfig) *int { return v.ProbeTimeout }).(pulumi.IntPtrOutput) +} + +// Detection mode, default is `NQA`, cannot be modified. +func (o ConnectionHealthCheckConfigOutput) ProbeType() pulumi.StringPtrOutput { + return o.ApplyT(func(v ConnectionHealthCheckConfig) *string { return v.ProbeType }).(pulumi.StringPtrOutput) +} + +type ConnectionHealthCheckConfigPtrOutput struct{ *pulumi.OutputState } + +func (ConnectionHealthCheckConfigPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**ConnectionHealthCheckConfig)(nil)).Elem() +} + +func (o ConnectionHealthCheckConfigPtrOutput) ToConnectionHealthCheckConfigPtrOutput() ConnectionHealthCheckConfigPtrOutput { + return o +} + +func (o ConnectionHealthCheckConfigPtrOutput) ToConnectionHealthCheckConfigPtrOutputWithContext(ctx context.Context) ConnectionHealthCheckConfigPtrOutput { + return o +} + +func (o ConnectionHealthCheckConfigPtrOutput) Elem() ConnectionHealthCheckConfigOutput { + return o.ApplyT(func(v *ConnectionHealthCheckConfig) ConnectionHealthCheckConfig { + if v != nil { + return *v + } + var ret ConnectionHealthCheckConfig + return ret + }).(ConnectionHealthCheckConfigOutput) +} + +// Detection interval, Tencent Cloud's interval between two health checks, range [1000-5000], Unit: ms. +func (o ConnectionHealthCheckConfigPtrOutput) ProbeInterval() pulumi.IntPtrOutput { + return o.ApplyT(func(v *ConnectionHealthCheckConfig) *int { + if v == nil { + return nil + } + return v.ProbeInterval + }).(pulumi.IntPtrOutput) +} + +// Detection times, perform route switching after N consecutive health check failures, range [3-8], Unit: times. +func (o ConnectionHealthCheckConfigPtrOutput) ProbeThreshold() pulumi.IntPtrOutput { + return o.ApplyT(func(v *ConnectionHealthCheckConfig) *int { + if v == nil { + return nil + } + return v.ProbeThreshold + }).(pulumi.IntPtrOutput) +} + +// Detection timeout, range [10-5000], Unit: ms. +func (o ConnectionHealthCheckConfigPtrOutput) ProbeTimeout() pulumi.IntPtrOutput { + return o.ApplyT(func(v *ConnectionHealthCheckConfig) *int { + if v == nil { + return nil + } + return v.ProbeTimeout + }).(pulumi.IntPtrOutput) +} + +// Detection mode, default is `NQA`, cannot be modified. +func (o ConnectionHealthCheckConfigPtrOutput) ProbeType() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ConnectionHealthCheckConfig) *string { + if v == nil { + return nil + } + return v.ProbeType + }).(pulumi.StringPtrOutput) +} + type ConnectionSecurityGroupPolicy struct { // Local cidr block. LocalCidrBlock string `pulumi:"localCidrBlock"` @@ -1428,6 +1797,10 @@ func (o GetGatewaysGatewayListArrayOutput) Index(i pulumi.IntInput) GetGatewaysG } func init() { + pulumi.RegisterInputType(reflect.TypeOf((*ConnectionBgpConfigInput)(nil)).Elem(), ConnectionBgpConfigArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ConnectionBgpConfigPtrInput)(nil)).Elem(), ConnectionBgpConfigArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ConnectionHealthCheckConfigInput)(nil)).Elem(), ConnectionHealthCheckConfigArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ConnectionHealthCheckConfigPtrInput)(nil)).Elem(), ConnectionHealthCheckConfigArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*ConnectionSecurityGroupPolicyInput)(nil)).Elem(), ConnectionSecurityGroupPolicyArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*ConnectionSecurityGroupPolicyArrayInput)(nil)).Elem(), ConnectionSecurityGroupPolicyArray{}) pulumi.RegisterInputType(reflect.TypeOf((*CustomerGatewayConfigurationDownloadCustomerGatewayVendorInput)(nil)).Elem(), CustomerGatewayConfigurationDownloadCustomerGatewayVendorArgs{}) @@ -1444,6 +1817,10 @@ func init() { pulumi.RegisterInputType(reflect.TypeOf((*GetGatewayRoutesVpnGatewayRouteListArrayInput)(nil)).Elem(), GetGatewayRoutesVpnGatewayRouteListArray{}) pulumi.RegisterInputType(reflect.TypeOf((*GetGatewaysGatewayListInput)(nil)).Elem(), GetGatewaysGatewayListArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*GetGatewaysGatewayListArrayInput)(nil)).Elem(), GetGatewaysGatewayListArray{}) + pulumi.RegisterOutputType(ConnectionBgpConfigOutput{}) + pulumi.RegisterOutputType(ConnectionBgpConfigPtrOutput{}) + pulumi.RegisterOutputType(ConnectionHealthCheckConfigOutput{}) + pulumi.RegisterOutputType(ConnectionHealthCheckConfigPtrOutput{}) pulumi.RegisterOutputType(ConnectionSecurityGroupPolicyOutput{}) pulumi.RegisterOutputType(ConnectionSecurityGroupPolicyArrayOutput{}) pulumi.RegisterOutputType(CustomerGatewayConfigurationDownloadCustomerGatewayVendorOutput{}) diff --git a/sdk/nodejs/as/scalingConfig.ts b/sdk/nodejs/as/scalingConfig.ts index abec40500..d2d019be3 100644 --- a/sdk/nodejs/as/scalingConfig.ts +++ b/sdk/nodejs/as/scalingConfig.ts @@ -13,6 +13,8 @@ import * as utilities from "../utilities"; * * ## Example Usage * + * ### Create a normal configuration + * * * ```typescript * import * as pulumi from "@pulumi/pulumi"; @@ -21,12 +23,12 @@ import * as utilities from "../utilities"; * * const exampleInstance = tencentcloud.Images.getInstance({ * imageTypes: ["PUBLIC_IMAGE"], - * osName: "TencentOS Server 3.2 (Final)", + * osName: "TencentOS Server 4 for x86_64", * }); * const exampleScalingConfig = new tencentcloud.as.ScalingConfig("exampleScalingConfig", { - * configurationName: "example-launch-configuration", + * configurationName: "tf-example", * imageId: exampleInstance.then(exampleInstance => exampleInstance.images?.[0]?.imageId), - * instanceTypes: ["SA1.SMALL1"], + * instanceTypes: ["SA5.MEDIUM4"], * projectId: 0, * systemDiskType: "CLOUD_PREMIUM", * systemDiskSize: 50, @@ -43,7 +45,7 @@ import * as utilities from "../utilities"; * enhancedAutomationToolsService: false, * userData: "dGVzdA==", * hostNameSettings: { - * hostName: "host-name-test", + * hostName: "host-name", * hostNameStyle: "UNIQUE", * }, * instanceTags: { @@ -63,12 +65,12 @@ import * as utilities from "../utilities"; * * const exampleInstance = tencentcloud.Images.getInstance({ * imageTypes: ["PUBLIC_IMAGE"], - * osName: "TencentOS Server 3.2 (Final)", + * osName: "TencentOS Server 4 for x86_64", * }); * const exampleScalingConfig = new tencentcloud.as.ScalingConfig("exampleScalingConfig", { - * configurationName: "launch-configuration", + * configurationName: "tf-example", * imageId: exampleInstance.then(exampleInstance => exampleInstance.images?.[0]?.imageId), - * instanceTypes: ["SA1.SMALL1"], + * instanceTypes: ["SA5.MEDIUM4"], * instanceChargeType: "SPOTPAID", * spotInstanceType: "one-time", * spotMaxPrice: "1000", @@ -104,6 +106,50 @@ import * as utilities from "../utilities"; * ``` * * + * ### Create a CDC configuration + * + * + * ```typescript + * import * as pulumi from "@pulumi/pulumi"; + * import * as tencentcloud from "@pulumi/tencentcloud"; + * import * as tencentcloud from "@tencentcloud_iac/pulumi"; + * + * const exampleInstance = tencentcloud.Images.getInstance({ + * imageTypes: ["PUBLIC_IMAGE"], + * osName: "TencentOS Server 4 for x86_64", + * }); + * const exampleScalingConfig = new tencentcloud.as.ScalingConfig("exampleScalingConfig", { + * configurationName: "tf-example", + * imageId: exampleInstance.then(exampleInstance => exampleInstance.images?.[0]?.imageId), + * instanceTypes: ["SA5.MEDIUM4"], + * projectId: 0, + * systemDiskType: "CLOUD_PREMIUM", + * systemDiskSize: 50, + * instanceChargeType: "CDCPAID", + * dedicatedClusterId: "cluster-262n63e8", + * dataDisks: [{ + * diskType: "CLOUD_PREMIUM", + * diskSize: 50, + * }], + * internetChargeType: "TRAFFIC_POSTPAID_BY_HOUR", + * internetMaxBandwidthOut: 10, + * publicIpAssigned: true, + * password: "Test@123#", + * enhancedSecurityService: false, + * enhancedMonitorService: false, + * enhancedAutomationToolsService: false, + * userData: "dGVzdA==", + * hostNameSettings: { + * hostName: "host-name", + * hostNameStyle: "UNIQUE", + * }, + * instanceTags: { + * tag: "example", + * }, + * }); + * ``` + * + * * ## Import * * AutoScaling Configuration can be imported using the id, e.g. @@ -156,6 +202,10 @@ export class ScalingConfig extends pulumi.CustomResource { * Configurations of data disk. */ public readonly dataDisks!: pulumi.Output; + /** + * Dedicated Cluster ID. + */ + public readonly dedicatedClusterId!: pulumi.Output; /** * Policy of cloud disk type. Valid values: `ORIGINAL` and `AUTOMATIC`. Default is `ORIGINAL`. */ @@ -185,7 +235,7 @@ export class ScalingConfig extends pulumi.CustomResource { */ public readonly imageId!: pulumi.Output; /** - * Charge type of instance. Valid values are `PREPAID`, `POSTPAID_BY_HOUR`, `SPOTPAID`. The default is `POSTPAID_BY_HOUR`. NOTE: `SPOTPAID` instance must set `spotInstanceType` and `spotMaxPrice` at the same time. + * Charge type of instance. Valid values are `PREPAID`, `POSTPAID_BY_HOUR`, `SPOTPAID`, `CDCPAID`. The default is `POSTPAID_BY_HOUR`. NOTE: `SPOTPAID` instance must set `spotInstanceType` and `spotMaxPrice` at the same time. */ public readonly instanceChargeType!: pulumi.Output; /** @@ -282,6 +332,7 @@ export class ScalingConfig extends pulumi.CustomResource { resourceInputs["configurationName"] = state ? state.configurationName : undefined; resourceInputs["createTime"] = state ? state.createTime : undefined; resourceInputs["dataDisks"] = state ? state.dataDisks : undefined; + resourceInputs["dedicatedClusterId"] = state ? state.dedicatedClusterId : undefined; resourceInputs["diskTypePolicy"] = state ? state.diskTypePolicy : undefined; resourceInputs["enhancedAutomationToolsService"] = state ? state.enhancedAutomationToolsService : undefined; resourceInputs["enhancedMonitorService"] = state ? state.enhancedMonitorService : undefined; @@ -320,6 +371,7 @@ export class ScalingConfig extends pulumi.CustomResource { resourceInputs["camRoleName"] = args ? args.camRoleName : undefined; resourceInputs["configurationName"] = args ? args.configurationName : undefined; resourceInputs["dataDisks"] = args ? args.dataDisks : undefined; + resourceInputs["dedicatedClusterId"] = args ? args.dedicatedClusterId : undefined; resourceInputs["diskTypePolicy"] = args ? args.diskTypePolicy : undefined; resourceInputs["enhancedAutomationToolsService"] = args ? args.enhancedAutomationToolsService : undefined; resourceInputs["enhancedMonitorService"] = args ? args.enhancedMonitorService : undefined; @@ -376,6 +428,10 @@ export interface ScalingConfigState { * Configurations of data disk. */ dataDisks?: pulumi.Input[]>; + /** + * Dedicated Cluster ID. + */ + dedicatedClusterId?: pulumi.Input; /** * Policy of cloud disk type. Valid values: `ORIGINAL` and `AUTOMATIC`. Default is `ORIGINAL`. */ @@ -405,7 +461,7 @@ export interface ScalingConfigState { */ imageId?: pulumi.Input; /** - * Charge type of instance. Valid values are `PREPAID`, `POSTPAID_BY_HOUR`, `SPOTPAID`. The default is `POSTPAID_BY_HOUR`. NOTE: `SPOTPAID` instance must set `spotInstanceType` and `spotMaxPrice` at the same time. + * Charge type of instance. Valid values are `PREPAID`, `POSTPAID_BY_HOUR`, `SPOTPAID`, `CDCPAID`. The default is `POSTPAID_BY_HOUR`. NOTE: `SPOTPAID` instance must set `spotInstanceType` and `spotMaxPrice` at the same time. */ instanceChargeType?: pulumi.Input; /** @@ -502,6 +558,10 @@ export interface ScalingConfigArgs { * Configurations of data disk. */ dataDisks?: pulumi.Input[]>; + /** + * Dedicated Cluster ID. + */ + dedicatedClusterId?: pulumi.Input; /** * Policy of cloud disk type. Valid values: `ORIGINAL` and `AUTOMATIC`. Default is `ORIGINAL`. */ @@ -531,7 +591,7 @@ export interface ScalingConfigArgs { */ imageId?: pulumi.Input; /** - * Charge type of instance. Valid values are `PREPAID`, `POSTPAID_BY_HOUR`, `SPOTPAID`. The default is `POSTPAID_BY_HOUR`. NOTE: `SPOTPAID` instance must set `spotInstanceType` and `spotMaxPrice` at the same time. + * Charge type of instance. Valid values are `PREPAID`, `POSTPAID_BY_HOUR`, `SPOTPAID`, `CDCPAID`. The default is `POSTPAID_BY_HOUR`. NOTE: `SPOTPAID` instance must set `spotInstanceType` and `spotMaxPrice` at the same time. */ instanceChargeType?: pulumi.Input; /** diff --git a/sdk/nodejs/clb/listenerRule.ts b/sdk/nodejs/clb/listenerRule.ts index 63d3ccb22..61912bee3 100644 --- a/sdk/nodejs/clb/listenerRule.ts +++ b/sdk/nodejs/clb/listenerRule.ts @@ -2,6 +2,8 @@ // *** Do not edit by hand unless you're certain you know what you are doing! *** import * as pulumi from "@pulumi/pulumi"; +import * as inputs from "../types/input"; +import * as outputs from "../types/output"; import * as utilities from "../utilities"; /** @@ -180,6 +182,10 @@ export class ListenerRule extends pulumi.CustomResource { * ID of CLB listener. */ public readonly listenerId!: pulumi.Output; + /** + * OAuth configuration information. + */ + public readonly oauth!: pulumi.Output; /** * Whether to enable QUIC. Note: QUIC can be enabled only for HTTPS domain names. */ @@ -237,6 +243,7 @@ export class ListenerRule extends pulumi.CustomResource { resourceInputs["healthCheckUnhealthNum"] = state ? state.healthCheckUnhealthNum : undefined; resourceInputs["http2Switch"] = state ? state.http2Switch : undefined; resourceInputs["listenerId"] = state ? state.listenerId : undefined; + resourceInputs["oauth"] = state ? state.oauth : undefined; resourceInputs["quic"] = state ? state.quic : undefined; resourceInputs["ruleId"] = state ? state.ruleId : undefined; resourceInputs["scheduler"] = state ? state.scheduler : undefined; @@ -273,6 +280,7 @@ export class ListenerRule extends pulumi.CustomResource { resourceInputs["healthCheckUnhealthNum"] = args ? args.healthCheckUnhealthNum : undefined; resourceInputs["http2Switch"] = args ? args.http2Switch : undefined; resourceInputs["listenerId"] = args ? args.listenerId : undefined; + resourceInputs["oauth"] = args ? args.oauth : undefined; resourceInputs["quic"] = args ? args.quic : undefined; resourceInputs["scheduler"] = args ? args.scheduler : undefined; resourceInputs["sessionExpireTime"] = args ? args.sessionExpireTime : undefined; @@ -365,6 +373,10 @@ export interface ListenerRuleState { * ID of CLB listener. */ listenerId?: pulumi.Input; + /** + * OAuth configuration information. + */ + oauth?: pulumi.Input; /** * Whether to enable QUIC. Note: QUIC can be enabled only for HTTPS domain names. */ @@ -471,6 +483,10 @@ export interface ListenerRuleArgs { * ID of CLB listener. */ listenerId: pulumi.Input; + /** + * OAuth configuration information. + */ + oauth?: pulumi.Input; /** * Whether to enable QUIC. Note: QUIC can be enabled only for HTTPS domain names. */ diff --git a/sdk/nodejs/cls/cloudProductLogTask.ts b/sdk/nodejs/cls/cloudProductLogTask.ts new file mode 100644 index 000000000..7a881c361 --- /dev/null +++ b/sdk/nodejs/cls/cloudProductLogTask.ts @@ -0,0 +1,282 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +import * as pulumi from "@pulumi/pulumi"; +import * as utilities from "../utilities"; + +/** + * Provides a resource to create a cls cloud product log task + * + * > **NOTE:** Using this resource will create new `logset` and `topic` + * + * ## Example Usage + * + * + * ```typescript + * import * as pulumi from "@pulumi/pulumi"; + * import * as tencentcloud from "@tencentcloud_iac/pulumi"; + * + * const example = new tencentcloud.cls.CloudProductLogTask("example", { + * assumerName: "PostgreSQL", + * cloudProductRegion: "gz", + * clsRegion: "ap-guangzhou", + * instanceId: "postgres-1p7xvpc1", + * logType: "PostgreSQL-SLOW", + * logsetName: "tf-example", + * topicName: "tf-example", + * }); + * ``` + * + * + * ## Import + * + * cls cloud product log task can be imported using the id, e.g. + * + * ```sh + * $ pulumi import tencentcloud:Cls/cloudProductLogTask:CloudProductLogTask example postgres-1p7xvpc1#PostgreSQL#PostgreSQL-SLOW#gz + * ``` + */ +export class CloudProductLogTask extends pulumi.CustomResource { + /** + * Get an existing CloudProductLogTask resource's state with the given name, ID, and optional extra + * properties used to qualify the lookup. + * + * @param name The _unique_ name of the resulting resource. + * @param id The _unique_ provider ID of the resource to lookup. + * @param state Any extra arguments used during the lookup. + * @param opts Optional settings to control the behavior of the CustomResource. + */ + public static get(name: string, id: pulumi.Input, state?: CloudProductLogTaskState, opts?: pulumi.CustomResourceOptions): CloudProductLogTask { + return new CloudProductLogTask(name, state, { ...opts, id: id }); + } + + /** @internal */ + public static readonly __pulumiType = 'tencentcloud:Cls/cloudProductLogTask:CloudProductLogTask'; + + /** + * Returns true if the given object is an instance of CloudProductLogTask. This is designed to work even + * when multiple copies of the Pulumi SDK have been loaded into the same process. + */ + public static isInstance(obj: any): obj is CloudProductLogTask { + if (obj === undefined || obj === null) { + return false; + } + return obj['__pulumiType'] === CloudProductLogTask.__pulumiType; + } + + /** + * Cloud product identification, Values: CDS, CWP, CDB, TDSQL-C, MongoDB, TDStore, DCDB, MariaDB, PostgreSQL, BH, APIS. + */ + public readonly assumerName!: pulumi.Output; + /** + * Cloud product region. There are differences in the input format of different log types in different regions. Please refer to the following example: + * - CDS(all log type): ap-guangzhou + * - CDB-AUDIT: gz + * - TDSQL-C-AUDIT: gz + * - MongoDB-AUDIT: gz + * - MongoDB-SlowLog: ap-guangzhou + * - MongoDB-ErrorLog: ap-guangzhou + * - TDMYSQL-SLOW: gz + * - DCDB(all log type): gz + * - MariaDB(all log type): gz + * - PostgreSQL(all log type): gz + * - BH(all log type): overseas-polaris(Domestic sites overseas)/fsi-polaris(Domestic sites finance)/general-polaris(Domestic sites)/intl-sg-prod(International sites) + * - APIS(all log type): gz. + */ + public readonly cloudProductRegion!: pulumi.Output; + /** + * CLS target region. + */ + public readonly clsRegion!: pulumi.Output; + /** + * Log configuration extension information, generally used to store additional log delivery configurations. + */ + public readonly extend!: pulumi.Output; + /** + * Instance ID. + */ + public readonly instanceId!: pulumi.Output; + /** + * Log type, Values: CDS-AUDIT, CDS-RISK, CDB-AUDIT, TDSQL-C-AUDIT, MongoDB-AUDIT, MongoDB-SlowLog, MongoDB-ErrorLog, TDMYSQL-SLOW, DCDB-AUDIT, DCDB-SLOW, DCDB-ERROR, MariaDB-AUDIT, MariaDB-SLOW, MariaDB-ERROR, PostgreSQL-SLOW, PostgreSQL-ERROR, PostgreSQL-AUDIT, BH-FILELOG, BH-COMMANDLOG, APIS-ACCESS. + */ + public readonly logType!: pulumi.Output; + /** + * Log set ID. + */ + public /*out*/ readonly logsetId!: pulumi.Output; + /** + * Log set name, it will be automatically created. + */ + public readonly logsetName!: pulumi.Output; + /** + * Log theme ID. + */ + public /*out*/ readonly topicId!: pulumi.Output; + /** + * The name of the log topic, it will be automatically created. + */ + public readonly topicName!: pulumi.Output; + + /** + * Create a CloudProductLogTask resource with the given unique name, arguments, and options. + * + * @param name The _unique_ name of the resource. + * @param args The arguments to use to populate this resource's properties. + * @param opts A bag of options that control this resource's behavior. + */ + constructor(name: string, args: CloudProductLogTaskArgs, opts?: pulumi.CustomResourceOptions) + constructor(name: string, argsOrState?: CloudProductLogTaskArgs | CloudProductLogTaskState, opts?: pulumi.CustomResourceOptions) { + let resourceInputs: pulumi.Inputs = {}; + opts = opts || {}; + if (opts.id) { + const state = argsOrState as CloudProductLogTaskState | undefined; + resourceInputs["assumerName"] = state ? state.assumerName : undefined; + resourceInputs["cloudProductRegion"] = state ? state.cloudProductRegion : undefined; + resourceInputs["clsRegion"] = state ? state.clsRegion : undefined; + resourceInputs["extend"] = state ? state.extend : undefined; + resourceInputs["instanceId"] = state ? state.instanceId : undefined; + resourceInputs["logType"] = state ? state.logType : undefined; + resourceInputs["logsetId"] = state ? state.logsetId : undefined; + resourceInputs["logsetName"] = state ? state.logsetName : undefined; + resourceInputs["topicId"] = state ? state.topicId : undefined; + resourceInputs["topicName"] = state ? state.topicName : undefined; + } else { + const args = argsOrState as CloudProductLogTaskArgs | undefined; + if ((!args || args.assumerName === undefined) && !opts.urn) { + throw new Error("Missing required property 'assumerName'"); + } + if ((!args || args.cloudProductRegion === undefined) && !opts.urn) { + throw new Error("Missing required property 'cloudProductRegion'"); + } + if ((!args || args.clsRegion === undefined) && !opts.urn) { + throw new Error("Missing required property 'clsRegion'"); + } + if ((!args || args.instanceId === undefined) && !opts.urn) { + throw new Error("Missing required property 'instanceId'"); + } + if ((!args || args.logType === undefined) && !opts.urn) { + throw new Error("Missing required property 'logType'"); + } + resourceInputs["assumerName"] = args ? args.assumerName : undefined; + resourceInputs["cloudProductRegion"] = args ? args.cloudProductRegion : undefined; + resourceInputs["clsRegion"] = args ? args.clsRegion : undefined; + resourceInputs["extend"] = args ? args.extend : undefined; + resourceInputs["instanceId"] = args ? args.instanceId : undefined; + resourceInputs["logType"] = args ? args.logType : undefined; + resourceInputs["logsetName"] = args ? args.logsetName : undefined; + resourceInputs["topicName"] = args ? args.topicName : undefined; + resourceInputs["logsetId"] = undefined /*out*/; + resourceInputs["topicId"] = undefined /*out*/; + } + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); + super(CloudProductLogTask.__pulumiType, name, resourceInputs, opts); + } +} + +/** + * Input properties used for looking up and filtering CloudProductLogTask resources. + */ +export interface CloudProductLogTaskState { + /** + * Cloud product identification, Values: CDS, CWP, CDB, TDSQL-C, MongoDB, TDStore, DCDB, MariaDB, PostgreSQL, BH, APIS. + */ + assumerName?: pulumi.Input; + /** + * Cloud product region. There are differences in the input format of different log types in different regions. Please refer to the following example: + * - CDS(all log type): ap-guangzhou + * - CDB-AUDIT: gz + * - TDSQL-C-AUDIT: gz + * - MongoDB-AUDIT: gz + * - MongoDB-SlowLog: ap-guangzhou + * - MongoDB-ErrorLog: ap-guangzhou + * - TDMYSQL-SLOW: gz + * - DCDB(all log type): gz + * - MariaDB(all log type): gz + * - PostgreSQL(all log type): gz + * - BH(all log type): overseas-polaris(Domestic sites overseas)/fsi-polaris(Domestic sites finance)/general-polaris(Domestic sites)/intl-sg-prod(International sites) + * - APIS(all log type): gz. + */ + cloudProductRegion?: pulumi.Input; + /** + * CLS target region. + */ + clsRegion?: pulumi.Input; + /** + * Log configuration extension information, generally used to store additional log delivery configurations. + */ + extend?: pulumi.Input; + /** + * Instance ID. + */ + instanceId?: pulumi.Input; + /** + * Log type, Values: CDS-AUDIT, CDS-RISK, CDB-AUDIT, TDSQL-C-AUDIT, MongoDB-AUDIT, MongoDB-SlowLog, MongoDB-ErrorLog, TDMYSQL-SLOW, DCDB-AUDIT, DCDB-SLOW, DCDB-ERROR, MariaDB-AUDIT, MariaDB-SLOW, MariaDB-ERROR, PostgreSQL-SLOW, PostgreSQL-ERROR, PostgreSQL-AUDIT, BH-FILELOG, BH-COMMANDLOG, APIS-ACCESS. + */ + logType?: pulumi.Input; + /** + * Log set ID. + */ + logsetId?: pulumi.Input; + /** + * Log set name, it will be automatically created. + */ + logsetName?: pulumi.Input; + /** + * Log theme ID. + */ + topicId?: pulumi.Input; + /** + * The name of the log topic, it will be automatically created. + */ + topicName?: pulumi.Input; +} + +/** + * The set of arguments for constructing a CloudProductLogTask resource. + */ +export interface CloudProductLogTaskArgs { + /** + * Cloud product identification, Values: CDS, CWP, CDB, TDSQL-C, MongoDB, TDStore, DCDB, MariaDB, PostgreSQL, BH, APIS. + */ + assumerName: pulumi.Input; + /** + * Cloud product region. There are differences in the input format of different log types in different regions. Please refer to the following example: + * - CDS(all log type): ap-guangzhou + * - CDB-AUDIT: gz + * - TDSQL-C-AUDIT: gz + * - MongoDB-AUDIT: gz + * - MongoDB-SlowLog: ap-guangzhou + * - MongoDB-ErrorLog: ap-guangzhou + * - TDMYSQL-SLOW: gz + * - DCDB(all log type): gz + * - MariaDB(all log type): gz + * - PostgreSQL(all log type): gz + * - BH(all log type): overseas-polaris(Domestic sites overseas)/fsi-polaris(Domestic sites finance)/general-polaris(Domestic sites)/intl-sg-prod(International sites) + * - APIS(all log type): gz. + */ + cloudProductRegion: pulumi.Input; + /** + * CLS target region. + */ + clsRegion: pulumi.Input; + /** + * Log configuration extension information, generally used to store additional log delivery configurations. + */ + extend?: pulumi.Input; + /** + * Instance ID. + */ + instanceId: pulumi.Input; + /** + * Log type, Values: CDS-AUDIT, CDS-RISK, CDB-AUDIT, TDSQL-C-AUDIT, MongoDB-AUDIT, MongoDB-SlowLog, MongoDB-ErrorLog, TDMYSQL-SLOW, DCDB-AUDIT, DCDB-SLOW, DCDB-ERROR, MariaDB-AUDIT, MariaDB-SLOW, MariaDB-ERROR, PostgreSQL-SLOW, PostgreSQL-ERROR, PostgreSQL-AUDIT, BH-FILELOG, BH-COMMANDLOG, APIS-ACCESS. + */ + logType: pulumi.Input; + /** + * Log set name, it will be automatically created. + */ + logsetName?: pulumi.Input; + /** + * The name of the log topic, it will be automatically created. + */ + topicName?: pulumi.Input; +} diff --git a/sdk/nodejs/cls/index.ts b/sdk/nodejs/cls/index.ts index 66e610e9d..e07287312 100644 --- a/sdk/nodejs/cls/index.ts +++ b/sdk/nodejs/cls/index.ts @@ -20,6 +20,11 @@ export type CkafkaConsumer = import("./ckafkaConsumer").CkafkaConsumer; export const CkafkaConsumer: typeof import("./ckafkaConsumer").CkafkaConsumer = null as any; utilities.lazyLoad(exports, ["CkafkaConsumer"], () => require("./ckafkaConsumer")); +export { CloudProductLogTaskArgs, CloudProductLogTaskState } from "./cloudProductLogTask"; +export type CloudProductLogTask = import("./cloudProductLogTask").CloudProductLogTask; +export const CloudProductLogTask: typeof import("./cloudProductLogTask").CloudProductLogTask = null as any; +utilities.lazyLoad(exports, ["CloudProductLogTask"], () => require("./cloudProductLogTask")); + export { ConfigArgs, ConfigState } from "./config"; export type Config = import("./config").Config; export const Config: typeof import("./config").Config = null as any; @@ -95,6 +100,11 @@ export type MachineGroup = import("./machineGroup").MachineGroup; export const MachineGroup: typeof import("./machineGroup").MachineGroup = null as any; utilities.lazyLoad(exports, ["MachineGroup"], () => require("./machineGroup")); +export { NoticeContentArgs, NoticeContentState } from "./noticeContent"; +export type NoticeContent = import("./noticeContent").NoticeContent; +export const NoticeContent: typeof import("./noticeContent").NoticeContent = null as any; +utilities.lazyLoad(exports, ["NoticeContent"], () => require("./noticeContent")); + export { ScheduledSqlArgs, ScheduledSqlState } from "./scheduledSql"; export type ScheduledSql = import("./scheduledSql").ScheduledSql; export const ScheduledSql: typeof import("./scheduledSql").ScheduledSql = null as any; @@ -116,6 +126,8 @@ const _module = { return new AlarmNotice(name, undefined, { urn }) case "tencentcloud:Cls/ckafkaConsumer:CkafkaConsumer": return new CkafkaConsumer(name, undefined, { urn }) + case "tencentcloud:Cls/cloudProductLogTask:CloudProductLogTask": + return new CloudProductLogTask(name, undefined, { urn }) case "tencentcloud:Cls/config:Config": return new Config(name, undefined, { urn }) case "tencentcloud:Cls/configAttachment:ConfigAttachment": @@ -138,6 +150,8 @@ const _module = { return new Logset(name, undefined, { urn }) case "tencentcloud:Cls/machineGroup:MachineGroup": return new MachineGroup(name, undefined, { urn }) + case "tencentcloud:Cls/noticeContent:NoticeContent": + return new NoticeContent(name, undefined, { urn }) case "tencentcloud:Cls/scheduledSql:ScheduledSql": return new ScheduledSql(name, undefined, { urn }) case "tencentcloud:Cls/topic:Topic": @@ -150,6 +164,7 @@ const _module = { pulumi.runtime.registerResourceModule("tencentcloud", "Cls/alarm", _module) pulumi.runtime.registerResourceModule("tencentcloud", "Cls/alarmNotice", _module) pulumi.runtime.registerResourceModule("tencentcloud", "Cls/ckafkaConsumer", _module) +pulumi.runtime.registerResourceModule("tencentcloud", "Cls/cloudProductLogTask", _module) pulumi.runtime.registerResourceModule("tencentcloud", "Cls/config", _module) pulumi.runtime.registerResourceModule("tencentcloud", "Cls/configAttachment", _module) pulumi.runtime.registerResourceModule("tencentcloud", "Cls/configExtra", _module) @@ -161,5 +176,6 @@ pulumi.runtime.registerResourceModule("tencentcloud", "Cls/index", _module) pulumi.runtime.registerResourceModule("tencentcloud", "Cls/kafkaRecharge", _module) pulumi.runtime.registerResourceModule("tencentcloud", "Cls/logset", _module) pulumi.runtime.registerResourceModule("tencentcloud", "Cls/machineGroup", _module) +pulumi.runtime.registerResourceModule("tencentcloud", "Cls/noticeContent", _module) pulumi.runtime.registerResourceModule("tencentcloud", "Cls/scheduledSql", _module) pulumi.runtime.registerResourceModule("tencentcloud", "Cls/topic", _module) diff --git a/sdk/nodejs/cls/noticeContent.ts b/sdk/nodejs/cls/noticeContent.ts new file mode 100644 index 000000000..4919f6cc6 --- /dev/null +++ b/sdk/nodejs/cls/noticeContent.ts @@ -0,0 +1,148 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +import * as pulumi from "@pulumi/pulumi"; +import * as inputs from "../types/input"; +import * as outputs from "../types/output"; +import * as utilities from "../utilities"; + +/** + * Provides a resource to create a cls notice content + * + * ## Example Usage + * + * + * ```typescript + * import * as pulumi from "@pulumi/pulumi"; + * import * as tencentcloud from "@tencentcloud_iac/pulumi"; + * + * const example = new tencentcloud.cls.NoticeContent("example", { + * noticeContents: { + * recoveryContent: { + * content: "This is content.", + * headers: ["Content-Type:application/json"], + * title: "title", + * }, + * triggerContent: { + * content: "This is content.", + * headers: ["Content-Type:application/json"], + * title: "title", + * }, + * type: "Email", + * }, + * type: 0, + * }); + * ``` + * + * + * ## Import + * + * cls notice content can be imported using the id, e.g. + * + * ```sh + * $ pulumi import tencentcloud:Cls/noticeContent:NoticeContent example noticetemplate-b417f32a-bdf9-46c5-933e-28c23cd7a6b7 + * ``` + */ +export class NoticeContent extends pulumi.CustomResource { + /** + * Get an existing NoticeContent resource's state with the given name, ID, and optional extra + * properties used to qualify the lookup. + * + * @param name The _unique_ name of the resulting resource. + * @param id The _unique_ provider ID of the resource to lookup. + * @param state Any extra arguments used during the lookup. + * @param opts Optional settings to control the behavior of the CustomResource. + */ + public static get(name: string, id: pulumi.Input, state?: NoticeContentState, opts?: pulumi.CustomResourceOptions): NoticeContent { + return new NoticeContent(name, state, { ...opts, id: id }); + } + + /** @internal */ + public static readonly __pulumiType = 'tencentcloud:Cls/noticeContent:NoticeContent'; + + /** + * Returns true if the given object is an instance of NoticeContent. This is designed to work even + * when multiple copies of the Pulumi SDK have been loaded into the same process. + */ + public static isInstance(obj: any): obj is NoticeContent { + if (obj === undefined || obj === null) { + return false; + } + return obj['__pulumiType'] === NoticeContent.__pulumiType; + } + + /** + * Notice content name. + */ + public readonly name!: pulumi.Output; + /** + * Template detailed configuration. + */ + public readonly noticeContents!: pulumi.Output; + /** + * Template content language. 0: Chinese 1: English. + */ + public readonly type!: pulumi.Output; + + /** + * Create a NoticeContent resource with the given unique name, arguments, and options. + * + * @param name The _unique_ name of the resource. + * @param args The arguments to use to populate this resource's properties. + * @param opts A bag of options that control this resource's behavior. + */ + constructor(name: string, args?: NoticeContentArgs, opts?: pulumi.CustomResourceOptions) + constructor(name: string, argsOrState?: NoticeContentArgs | NoticeContentState, opts?: pulumi.CustomResourceOptions) { + let resourceInputs: pulumi.Inputs = {}; + opts = opts || {}; + if (opts.id) { + const state = argsOrState as NoticeContentState | undefined; + resourceInputs["name"] = state ? state.name : undefined; + resourceInputs["noticeContents"] = state ? state.noticeContents : undefined; + resourceInputs["type"] = state ? state.type : undefined; + } else { + const args = argsOrState as NoticeContentArgs | undefined; + resourceInputs["name"] = args ? args.name : undefined; + resourceInputs["noticeContents"] = args ? args.noticeContents : undefined; + resourceInputs["type"] = args ? args.type : undefined; + } + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); + super(NoticeContent.__pulumiType, name, resourceInputs, opts); + } +} + +/** + * Input properties used for looking up and filtering NoticeContent resources. + */ +export interface NoticeContentState { + /** + * Notice content name. + */ + name?: pulumi.Input; + /** + * Template detailed configuration. + */ + noticeContents?: pulumi.Input; + /** + * Template content language. 0: Chinese 1: English. + */ + type?: pulumi.Input; +} + +/** + * The set of arguments for constructing a NoticeContent resource. + */ +export interface NoticeContentArgs { + /** + * Notice content name. + */ + name?: pulumi.Input; + /** + * Template detailed configuration. + */ + noticeContents?: pulumi.Input; + /** + * Template content language. 0: Chinese 1: English. + */ + type?: pulumi.Input; +} diff --git a/sdk/nodejs/kubernetes/nodePool.ts b/sdk/nodejs/kubernetes/nodePool.ts index 88535f257..a26277521 100644 --- a/sdk/nodejs/kubernetes/nodePool.ts +++ b/sdk/nodejs/kubernetes/nodePool.ts @@ -15,6 +15,8 @@ import * as utilities from "../utilities"; * * > **NOTE:** In order to ensure the integrity of customer data, if the cvm instance was destroyed due to shrinking, it will keep the cbs associate with cvm by default. If you want to destroy together, please set `deleteWithInstance` to `true`. * + * > **NOTE:** There are two parameters `waitNodeReady` and `scaleTolerance` to ensure better management of node pool scaling operations. If this parameter is set, when creating resources, if the set criteria are not met, the resources will be marked as `tainted`. + * * ## Example Usage * * @@ -144,6 +146,68 @@ import * as utilities from "../utilities"; * ``` * * + * + * ```typescript + * import * as pulumi from "@pulumi/pulumi"; + * import * as tencentcloud from "@tencentcloud_iac/pulumi"; + * + * const example = new tencentcloud.kubernetes.NodePool("example", { + * clusterId: tencentcloud_kubernetes_cluster.managed_cluster.id, + * maxSize: 100, + * minSize: 1, + * vpcId: data.tencentcloud_vpc_subnets.vpc.instance_list[0].vpc_id, + * subnetIds: [data.tencentcloud_vpc_subnets.vpc.instance_list[0].subnet_id], + * retryPolicy: "INCREMENTAL_INTERVALS", + * desiredCapacity: 50, + * enableAutoScale: false, + * waitNodeReady: true, + * scaleTolerance: 90, + * multiZoneSubnetPolicy: "EQUALITY", + * nodeOs: "img-6n21msk1", + * deleteKeepInstance: false, + * autoScalingConfig: { + * instanceType: _var.default_instance_type, + * systemDiskType: "CLOUD_PREMIUM", + * systemDiskSize: 50, + * orderlySecurityGroupIds: ["sg-bw28gmso"], + * dataDisks: [{ + * diskType: "CLOUD_PREMIUM", + * diskSize: 50, + * deleteWithInstance: true, + * }], + * internetChargeType: "TRAFFIC_POSTPAID_BY_HOUR", + * internetMaxBandwidthOut: 10, + * publicIpAssigned: true, + * password: "test123#", + * enhancedSecurityService: false, + * enhancedMonitorService: false, + * hostName: "12.123.0.0", + * hostNameStyle: "ORIGINAL", + * }, + * labels: { + * test1: "test1", + * test2: "test2", + * }, + * taints: [ + * { + * key: "test_taint", + * value: "taint_value", + * effect: "PreferNoSchedule", + * }, + * { + * key: "test_taint2", + * value: "taint_value2", + * effect: "PreferNoSchedule", + * }, + * ], + * nodeConfig: { + * dockerGraphPath: "/var/lib/docker", + * extraArgs: ["root-dir=/var/lib/kubelet"], + * }, + * }); + * ``` + * + * * ## Import * * tke node pool can be imported, e.g. @@ -268,6 +332,10 @@ export class NodePool extends pulumi.CustomResource { * Available values for retry policies include `IMMEDIATE_RETRY` and `INCREMENTAL_INTERVALS`. */ public readonly retryPolicy!: pulumi.Output; + /** + * Control how many expectations(`desiredCapacity`) can be tolerated successfully. Unit is percentage, Default is `100`. Only can be set if `waitNodeReady` is `true`. + */ + public readonly scaleTolerance!: pulumi.Output; /** * Name of relative scaling group. */ @@ -308,6 +376,10 @@ export class NodePool extends pulumi.CustomResource { * ID of VPC network. */ public readonly vpcId!: pulumi.Output; + /** + * Whether to wait for all expansion resources to be ready. Default is false. Only can be set if `enableAutoScale` is `false`. + */ + public readonly waitNodeReady!: pulumi.Output; /** * List of auto scaling group available zones, for Basic network it is required. */ @@ -348,6 +420,7 @@ export class NodePool extends pulumi.CustomResource { resourceInputs["nodeOs"] = state ? state.nodeOs : undefined; resourceInputs["nodeOsType"] = state ? state.nodeOsType : undefined; resourceInputs["retryPolicy"] = state ? state.retryPolicy : undefined; + resourceInputs["scaleTolerance"] = state ? state.scaleTolerance : undefined; resourceInputs["scalingGroupName"] = state ? state.scalingGroupName : undefined; resourceInputs["scalingGroupProjectId"] = state ? state.scalingGroupProjectId : undefined; resourceInputs["scalingMode"] = state ? state.scalingMode : undefined; @@ -358,6 +431,7 @@ export class NodePool extends pulumi.CustomResource { resourceInputs["terminationPolicies"] = state ? state.terminationPolicies : undefined; resourceInputs["unschedulable"] = state ? state.unschedulable : undefined; resourceInputs["vpcId"] = state ? state.vpcId : undefined; + resourceInputs["waitNodeReady"] = state ? state.waitNodeReady : undefined; resourceInputs["zones"] = state ? state.zones : undefined; } else { const args = argsOrState as NodePoolArgs | undefined; @@ -393,6 +467,7 @@ export class NodePool extends pulumi.CustomResource { resourceInputs["nodeOs"] = args ? args.nodeOs : undefined; resourceInputs["nodeOsType"] = args ? args.nodeOsType : undefined; resourceInputs["retryPolicy"] = args ? args.retryPolicy : undefined; + resourceInputs["scaleTolerance"] = args ? args.scaleTolerance : undefined; resourceInputs["scalingGroupName"] = args ? args.scalingGroupName : undefined; resourceInputs["scalingGroupProjectId"] = args ? args.scalingGroupProjectId : undefined; resourceInputs["scalingMode"] = args ? args.scalingMode : undefined; @@ -402,6 +477,7 @@ export class NodePool extends pulumi.CustomResource { resourceInputs["terminationPolicies"] = args ? args.terminationPolicies : undefined; resourceInputs["unschedulable"] = args ? args.unschedulable : undefined; resourceInputs["vpcId"] = args ? args.vpcId : undefined; + resourceInputs["waitNodeReady"] = args ? args.waitNodeReady : undefined; resourceInputs["zones"] = args ? args.zones : undefined; resourceInputs["autoScalingGroupId"] = undefined /*out*/; resourceInputs["autoscalingAddedTotal"] = undefined /*out*/; @@ -507,6 +583,10 @@ export interface NodePoolState { * Available values for retry policies include `IMMEDIATE_RETRY` and `INCREMENTAL_INTERVALS`. */ retryPolicy?: pulumi.Input; + /** + * Control how many expectations(`desiredCapacity`) can be tolerated successfully. Unit is percentage, Default is `100`. Only can be set if `waitNodeReady` is `true`. + */ + scaleTolerance?: pulumi.Input; /** * Name of relative scaling group. */ @@ -547,6 +627,10 @@ export interface NodePoolState { * ID of VPC network. */ vpcId?: pulumi.Input; + /** + * Whether to wait for all expansion resources to be ready. Default is false. Only can be set if `enableAutoScale` is `false`. + */ + waitNodeReady?: pulumi.Input; /** * List of auto scaling group available zones, for Basic network it is required. */ @@ -625,6 +709,10 @@ export interface NodePoolArgs { * Available values for retry policies include `IMMEDIATE_RETRY` and `INCREMENTAL_INTERVALS`. */ retryPolicy?: pulumi.Input; + /** + * Control how many expectations(`desiredCapacity`) can be tolerated successfully. Unit is percentage, Default is `100`. Only can be set if `waitNodeReady` is `true`. + */ + scaleTolerance?: pulumi.Input; /** * Name of relative scaling group. */ @@ -661,6 +749,10 @@ export interface NodePoolArgs { * ID of VPC network. */ vpcId: pulumi.Input; + /** + * Whether to wait for all expansion resources to be ready. Default is false. Only can be set if `enableAutoScale` is `false`. + */ + waitNodeReady?: pulumi.Input; /** * List of auto scaling group available zones, for Basic network it is required. */ diff --git a/sdk/nodejs/reserve/ipAddress.ts b/sdk/nodejs/reserve/ipAddress.ts index 7fbc45b8c..495875a3d 100644 --- a/sdk/nodejs/reserve/ipAddress.ts +++ b/sdk/nodejs/reserve/ipAddress.ts @@ -4,6 +4,36 @@ import * as pulumi from "@pulumi/pulumi"; import * as utilities from "../utilities"; +/** + * Provides a resource to create a vpc reserve ip addresses + * + * ## Example Usage + * + * + * ```typescript + * import * as pulumi from "@pulumi/pulumi"; + * import * as tencentcloud from "@tencentcloud_iac/pulumi"; + * + * const reserveIp = new tencentcloud.reserve.IpAddress("reserveIp", { + * description: "description", + * ipAddress: "10.0.0.13", + * subnetId: "xxxxxx", + * tags: { + * test1: "test1", + * }, + * vpcId: "xxxxxx", + * }); + * ``` + * + * + * ## Import + * + * vpc reserve_ip_addresses can be imported using the id, e.g. + * + * ```sh + * $ pulumi import tencentcloud:Reserve/ipAddress:IpAddress reserve_ip_addresses ${vpcId}#${reserveIpId} + * ``` + */ export class IpAddress extends pulumi.CustomResource { /** * Get an existing IpAddress resource's state with the given name, ID, and optional extra diff --git a/sdk/nodejs/scf/customDomain.ts b/sdk/nodejs/scf/customDomain.ts new file mode 100644 index 000000000..f3d4c1603 --- /dev/null +++ b/sdk/nodejs/scf/customDomain.ts @@ -0,0 +1,182 @@ +// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +import * as pulumi from "@pulumi/pulumi"; +import * as inputs from "../types/input"; +import * as outputs from "../types/output"; +import * as utilities from "../utilities"; + +/** + * Provides a resource to create a scf custom domain + * + * ## Example Usage + * + * + * ```typescript + * import * as pulumi from "@pulumi/pulumi"; + * import * as tencentcloud from "@tencentcloud_iac/pulumi"; + * + * const scfCustomDomain = new tencentcloud.scf.CustomDomain("scfCustomDomain", { + * domain: "xxxxxx", + * endpointsConfigs: [{ + * functionName: "xxxxxx", + * namespace: "default", + * pathMatch: "/aa/*", + * qualifier: "$LATEST", + * }], + * protocol: "HTTP", + * wafConfig: { + * wafOpen: "CLOSE", + * }, + * }); + * ``` + * + * + * ## Import + * + * scf scf_custom_domain can be imported using the id, e.g. + * + * ```sh + * $ pulumi import tencentcloud:Scf/customDomain:CustomDomain scf_custom_domain ${domain} + * ``` + */ +export class CustomDomain extends pulumi.CustomResource { + /** + * Get an existing CustomDomain resource's state with the given name, ID, and optional extra + * properties used to qualify the lookup. + * + * @param name The _unique_ name of the resulting resource. + * @param id The _unique_ provider ID of the resource to lookup. + * @param state Any extra arguments used during the lookup. + * @param opts Optional settings to control the behavior of the CustomResource. + */ + public static get(name: string, id: pulumi.Input, state?: CustomDomainState, opts?: pulumi.CustomResourceOptions): CustomDomain { + return new CustomDomain(name, state, { ...opts, id: id }); + } + + /** @internal */ + public static readonly __pulumiType = 'tencentcloud:Scf/customDomain:CustomDomain'; + + /** + * Returns true if the given object is an instance of CustomDomain. This is designed to work even + * when multiple copies of the Pulumi SDK have been loaded into the same process. + */ + public static isInstance(obj: any): obj is CustomDomain { + if (obj === undefined || obj === null) { + return false; + } + return obj['__pulumiType'] === CustomDomain.__pulumiType; + } + + /** + * Certificate configuration information, required for HTTPS protocol. + */ + public readonly certConfig!: pulumi.Output; + /** + * Domain names, pan-domain names are not supported. + */ + public readonly domain!: pulumi.Output; + /** + * Routing configuration. + */ + public readonly endpointsConfigs!: pulumi.Output; + /** + * Protocol, value range: HTTP, HTTPS, HTTP&HTTPS. + */ + public readonly protocol!: pulumi.Output; + /** + * Web Application Firewall Configuration. + */ + public readonly wafConfig!: pulumi.Output; + + /** + * Create a CustomDomain resource with the given unique name, arguments, and options. + * + * @param name The _unique_ name of the resource. + * @param args The arguments to use to populate this resource's properties. + * @param opts A bag of options that control this resource's behavior. + */ + constructor(name: string, args: CustomDomainArgs, opts?: pulumi.CustomResourceOptions) + constructor(name: string, argsOrState?: CustomDomainArgs | CustomDomainState, opts?: pulumi.CustomResourceOptions) { + let resourceInputs: pulumi.Inputs = {}; + opts = opts || {}; + if (opts.id) { + const state = argsOrState as CustomDomainState | undefined; + resourceInputs["certConfig"] = state ? state.certConfig : undefined; + resourceInputs["domain"] = state ? state.domain : undefined; + resourceInputs["endpointsConfigs"] = state ? state.endpointsConfigs : undefined; + resourceInputs["protocol"] = state ? state.protocol : undefined; + resourceInputs["wafConfig"] = state ? state.wafConfig : undefined; + } else { + const args = argsOrState as CustomDomainArgs | undefined; + if ((!args || args.domain === undefined) && !opts.urn) { + throw new Error("Missing required property 'domain'"); + } + if ((!args || args.endpointsConfigs === undefined) && !opts.urn) { + throw new Error("Missing required property 'endpointsConfigs'"); + } + if ((!args || args.protocol === undefined) && !opts.urn) { + throw new Error("Missing required property 'protocol'"); + } + resourceInputs["certConfig"] = args ? args.certConfig : undefined; + resourceInputs["domain"] = args ? args.domain : undefined; + resourceInputs["endpointsConfigs"] = args ? args.endpointsConfigs : undefined; + resourceInputs["protocol"] = args ? args.protocol : undefined; + resourceInputs["wafConfig"] = args ? args.wafConfig : undefined; + } + opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts); + super(CustomDomain.__pulumiType, name, resourceInputs, opts); + } +} + +/** + * Input properties used for looking up and filtering CustomDomain resources. + */ +export interface CustomDomainState { + /** + * Certificate configuration information, required for HTTPS protocol. + */ + certConfig?: pulumi.Input; + /** + * Domain names, pan-domain names are not supported. + */ + domain?: pulumi.Input; + /** + * Routing configuration. + */ + endpointsConfigs?: pulumi.Input[]>; + /** + * Protocol, value range: HTTP, HTTPS, HTTP&HTTPS. + */ + protocol?: pulumi.Input; + /** + * Web Application Firewall Configuration. + */ + wafConfig?: pulumi.Input; +} + +/** + * The set of arguments for constructing a CustomDomain resource. + */ +export interface CustomDomainArgs { + /** + * Certificate configuration information, required for HTTPS protocol. + */ + certConfig?: pulumi.Input; + /** + * Domain names, pan-domain names are not supported. + */ + domain: pulumi.Input; + /** + * Routing configuration. + */ + endpointsConfigs: pulumi.Input[]>; + /** + * Protocol, value range: HTTP, HTTPS, HTTP&HTTPS. + */ + protocol: pulumi.Input; + /** + * Web Application Firewall Configuration. + */ + wafConfig?: pulumi.Input; +} diff --git a/sdk/nodejs/scf/index.ts b/sdk/nodejs/scf/index.ts index e526e8484..002fca6b0 100644 --- a/sdk/nodejs/scf/index.ts +++ b/sdk/nodejs/scf/index.ts @@ -5,6 +5,11 @@ import * as pulumi from "@pulumi/pulumi"; import * as utilities from "../utilities"; // Export members: +export { CustomDomainArgs, CustomDomainState } from "./customDomain"; +export type CustomDomain = import("./customDomain").CustomDomain; +export const CustomDomain: typeof import("./customDomain").CustomDomain = null as any; +utilities.lazyLoad(exports, ["CustomDomain"], () => require("./customDomain")); + export { FunctionArgs, FunctionState } from "./function"; export type Function = import("./function").Function; export const Function: typeof import("./function").Function = null as any; @@ -135,6 +140,8 @@ const _module = { version: utilities.getVersion(), construct: (name: string, type: string, urn: string): pulumi.Resource => { switch (type) { + case "tencentcloud:Scf/customDomain:CustomDomain": + return new CustomDomain(name, undefined, { urn }) case "tencentcloud:Scf/function:Function": return new Function(name, undefined, { urn }) case "tencentcloud:Scf/functionAlias:FunctionAlias": @@ -164,6 +171,7 @@ const _module = { } }, }; +pulumi.runtime.registerResourceModule("tencentcloud", "Scf/customDomain", _module) pulumi.runtime.registerResourceModule("tencentcloud", "Scf/function", _module) pulumi.runtime.registerResourceModule("tencentcloud", "Scf/functionAlias", _module) pulumi.runtime.registerResourceModule("tencentcloud", "Scf/functionEventInvokeConfig", _module) diff --git a/sdk/nodejs/tsconfig.json b/sdk/nodejs/tsconfig.json index a8dc834d7..d40ca43e0 100644 --- a/sdk/nodejs/tsconfig.json +++ b/sdk/nodejs/tsconfig.json @@ -383,6 +383,7 @@ "cls/alarm.ts", "cls/alarmNotice.ts", "cls/ckafkaConsumer.ts", + "cls/cloudProductLogTask.ts", "cls/config.ts", "cls/configAttachment.ts", "cls/configExtra.ts", @@ -399,6 +400,7 @@ "cls/kafkaRecharge.ts", "cls/logset.ts", "cls/machineGroup.ts", + "cls/noticeContent.ts", "cls/scheduledSql.ts", "cls/topic.ts", "config/index.ts", @@ -1392,6 +1394,7 @@ "rum/releaseFile.ts", "rum/tawInstance.ts", "rum/whitelist.ts", + "scf/customDomain.ts", "scf/function.ts", "scf/functionAlias.ts", "scf/functionEventInvokeConfig.ts", diff --git a/sdk/nodejs/types/input.ts b/sdk/nodejs/types/input.ts index b7110c46d..d48e14737 100644 --- a/sdk/nodejs/types/input.ts +++ b/sdk/nodejs/types/input.ts @@ -7658,6 +7658,17 @@ export namespace Clb { subnetId: pulumi.Input; } + export interface ListenerRuleOauth { + /** + * Enable or disable authentication. True: Enabled; False: Disabled. + */ + oauthEnable?: pulumi.Input; + /** + * After all IAPs fail, the request is rejected or released. BYPASS: PASS; REJECT: Reject. + */ + oauthFailureStatus?: pulumi.Input; + } + export interface ReplaceCertForLbsCertificate { /** * Content of the uploaded client certificate. When SSLMode = mutual, if there is no CertCaId, this parameter is required. @@ -8778,6 +8789,51 @@ export namespace Cls { values: pulumi.Input[]>; } + export interface NoticeContentNoticeContents { + /** + * Template for Alarm Recovery Notification Content. + */ + recoveryContent?: pulumi.Input; + /** + * Alarm triggered notification content template. + */ + triggerContent?: pulumi.Input; + /** + * Channel type. Email: Email; Sms: SMS; WeChat: WeChat; Phone: Telephone; WeCom: Enterprise WeChat; DingTalk: DingTalk; Lark: Feishu; HTTP: Custom callback. + */ + type: pulumi.Input; + } + + export interface NoticeContentNoticeContentsRecoveryContent { + /** + * Notification content template body information. + */ + content?: pulumi.Input; + /** + * Request headers: In HTTP requests, request headers contain additional information sent by the client to the server, such as user agent, authorization credentials, expected response format, etc. Only `custom callback` supports this configuration. + */ + headers?: pulumi.Input[]>; + /** + * Notification content template title information. Some notification channel types do not support 'title', please refer to the Tencent Cloud Console page. + */ + title?: pulumi.Input; + } + + export interface NoticeContentNoticeContentsTriggerContent { + /** + * Notification content template body information. + */ + content?: pulumi.Input; + /** + * Request headers: In HTTP requests, request headers contain additional information sent by the client to the server, such as user agent, authorization credentials, expected response format, etc. Only `custom callback` supports this configuration. + */ + headers?: pulumi.Input[]>; + /** + * Notification content template title information. Some notification channel types do not support 'title', please refer to the Tencent Cloud Console page. + */ + title?: pulumi.Input; + } + export interface ScheduledSqlDstResource { /** * topic type. @@ -27346,6 +27402,62 @@ export namespace Rum { } export namespace Scf { + export interface CustomDomainCertConfig { + /** + * SSL Certificates ID. + */ + certificateId?: pulumi.Input; + } + + export interface CustomDomainEndpointsConfig { + /** + * Function name. + */ + functionName: pulumi.Input; + /** + * Function namespace. + */ + namespace: pulumi.Input; + /** + * Path, value specification: /,/*,/xxx,/xxx/a,/xxx/*. + */ + pathMatch: pulumi.Input; + /** + * Path rewriting policy. + */ + pathRewrites?: pulumi.Input[]>; + /** + * Function alias or version. + */ + qualifier: pulumi.Input; + } + + export interface CustomDomainEndpointsConfigPathRewrite { + /** + * Path that needs to be rerouted, value specification: /,/*,/xxx,/xxx/a,/xxx/*. + */ + path: pulumi.Input; + /** + * Replacement values: such as/, /$. + */ + rewrite: pulumi.Input; + /** + * Matching rules, value range: WildcardRules wildcard matching, ExactRules exact matching. + */ + type: pulumi.Input; + } + + export interface CustomDomainWafConfig { + /** + * Web Application Firewall Instance ID. + */ + wafInstanceId?: pulumi.Input; + /** + * Whether the Web Application Firewall is turned on, value range:OPEN, CLOSE. + */ + wafOpen?: pulumi.Input; + } + export interface FunctionAliasRoutingConfig { /** * Additional version with rule-based routing. @@ -33398,6 +33510,40 @@ export namespace Vpc { } export namespace Vpn { + export interface ConnectionBgpConfig { + /** + * Cloud BGP address. It must be allocated from within the BGP tunnel network segment. + */ + localBgpIp: pulumi.Input; + /** + * User side BGP address. It must be allocated from within the BGP tunnel network segment. + */ + remoteBgpIp: pulumi.Input; + /** + * BGP tunnel segment. + */ + tunnelCidr: pulumi.Input; + } + + export interface ConnectionHealthCheckConfig { + /** + * Detection interval, Tencent Cloud's interval between two health checks, range [1000-5000], Unit: ms. + */ + probeInterval?: pulumi.Input; + /** + * Detection times, perform route switching after N consecutive health check failures, range [3-8], Unit: times. + */ + probeThreshold?: pulumi.Input; + /** + * Detection timeout, range [10-5000], Unit: ms. + */ + probeTimeout?: pulumi.Input; + /** + * Detection mode, default is `NQA`, cannot be modified. + */ + probeType?: pulumi.Input; + } + export interface ConnectionSecurityGroupPolicy { /** * Local cidr block. diff --git a/sdk/nodejs/types/output.ts b/sdk/nodejs/types/output.ts index de2c22083..324c6629d 100644 --- a/sdk/nodejs/types/output.ts +++ b/sdk/nodejs/types/output.ts @@ -17640,6 +17640,17 @@ export namespace Clb { subnetId: string; } + export interface ListenerRuleOauth { + /** + * Enable or disable authentication. True: Enabled; False: Disabled. + */ + oauthEnable: boolean; + /** + * After all IAPs fail, the request is rejected or released. BYPASS: PASS; REJECT: Reject. + */ + oauthFailureStatus: string; + } + export interface ReplaceCertForLbsCertificate { /** * Content of the uploaded client certificate. When SSLMode = mutual, if there is no CertCaId, this parameter is required. @@ -19382,6 +19393,51 @@ export namespace Cls { values: string[]; } + export interface NoticeContentNoticeContents { + /** + * Template for Alarm Recovery Notification Content. + */ + recoveryContent?: outputs.Cls.NoticeContentNoticeContentsRecoveryContent; + /** + * Alarm triggered notification content template. + */ + triggerContent?: outputs.Cls.NoticeContentNoticeContentsTriggerContent; + /** + * Channel type. Email: Email; Sms: SMS; WeChat: WeChat; Phone: Telephone; WeCom: Enterprise WeChat; DingTalk: DingTalk; Lark: Feishu; HTTP: Custom callback. + */ + type: string; + } + + export interface NoticeContentNoticeContentsRecoveryContent { + /** + * Notification content template body information. + */ + content?: string; + /** + * Request headers: In HTTP requests, request headers contain additional information sent by the client to the server, such as user agent, authorization credentials, expected response format, etc. Only `custom callback` supports this configuration. + */ + headers?: string[]; + /** + * Notification content template title information. Some notification channel types do not support 'title', please refer to the Tencent Cloud Console page. + */ + title?: string; + } + + export interface NoticeContentNoticeContentsTriggerContent { + /** + * Notification content template body information. + */ + content?: string; + /** + * Request headers: In HTTP requests, request headers contain additional information sent by the client to the server, such as user agent, authorization credentials, expected response format, etc. Only `custom callback` supports this configuration. + */ + headers?: string[]; + /** + * Notification content template title information. Some notification channel types do not support 'title', please refer to the Tencent Cloud Console page. + */ + title?: string; + } + export interface ScheduledSqlDstResource { /** * topic type. @@ -62593,6 +62649,62 @@ export namespace Rum { } export namespace Scf { + export interface CustomDomainCertConfig { + /** + * SSL Certificates ID. + */ + certificateId?: string; + } + + export interface CustomDomainEndpointsConfig { + /** + * Function name. + */ + functionName: string; + /** + * Function namespace. + */ + namespace: string; + /** + * Path, value specification: /,/*,/xxx,/xxx/a,/xxx/*. + */ + pathMatch: string; + /** + * Path rewriting policy. + */ + pathRewrites?: outputs.Scf.CustomDomainEndpointsConfigPathRewrite[]; + /** + * Function alias or version. + */ + qualifier: string; + } + + export interface CustomDomainEndpointsConfigPathRewrite { + /** + * Path that needs to be rerouted, value specification: /,/*,/xxx,/xxx/a,/xxx/*. + */ + path: string; + /** + * Replacement values: such as/, /$. + */ + rewrite: string; + /** + * Matching rules, value range: WildcardRules wildcard matching, ExactRules exact matching. + */ + type: string; + } + + export interface CustomDomainWafConfig { + /** + * Web Application Firewall Instance ID. + */ + wafInstanceId?: string; + /** + * Whether the Web Application Firewall is turned on, value range:OPEN, CLOSE. + */ + wafOpen?: string; + } + export interface FunctionAliasRoutingConfig { /** * Additional version with rule-based routing. @@ -78304,6 +78416,40 @@ export namespace Vpc { } export namespace Vpn { + export interface ConnectionBgpConfig { + /** + * Cloud BGP address. It must be allocated from within the BGP tunnel network segment. + */ + localBgpIp: string; + /** + * User side BGP address. It must be allocated from within the BGP tunnel network segment. + */ + remoteBgpIp: string; + /** + * BGP tunnel segment. + */ + tunnelCidr: string; + } + + export interface ConnectionHealthCheckConfig { + /** + * Detection interval, Tencent Cloud's interval between two health checks, range [1000-5000], Unit: ms. + */ + probeInterval?: number; + /** + * Detection times, perform route switching after N consecutive health check failures, range [3-8], Unit: times. + */ + probeThreshold?: number; + /** + * Detection timeout, range [10-5000], Unit: ms. + */ + probeTimeout?: number; + /** + * Detection mode, default is `NQA`, cannot be modified. + */ + probeType?: string; + } + export interface ConnectionSecurityGroupPolicy { /** * Local cidr block. diff --git a/sdk/nodejs/vpn/connection.ts b/sdk/nodejs/vpn/connection.ts index 4cd8c6677..aedad6d87 100644 --- a/sdk/nodejs/vpn/connection.ts +++ b/sdk/nodejs/vpn/connection.ts @@ -16,32 +16,43 @@ import * as utilities from "../utilities"; * import * as pulumi from "@pulumi/pulumi"; * import * as tencentcloud from "@tencentcloud_iac/pulumi"; * - * const foo = new tencentcloud.vpn.Connection("foo", { - * customerGatewayId: "cgw-xfqag", + * const example = new tencentcloud.vpn.Connection("example", { + * customerGatewayId: "cgw-e503id2z", + * enableHealthCheck: true, + * healthCheckConfig: { + * probeInterval: 5000, + * probeThreshold: 3, + * probeTimeout: 150, + * probeType: "NQA", + * }, + * healthCheckLocalIp: "169.254.227.187", + * healthCheckRemoteIp: "169.254.164.37", * ikeDhGroupName: "GROUP2", * ikeExchangeMode: "AGGRESSIVE", - * ikeLocalAddress: "1.1.1.1", + * ikeLocalAddress: "159.75.204.38", * ikeLocalIdentity: "ADDRESS", * ikeProtoAuthenAlgorithm: "SHA", * ikeProtoEncryAlgorithm: "3DES-CBC", - * ikeRemoteAddress: "2.2.2.2", + * ikeRemoteAddress: "109.244.60.154", * ikeRemoteIdentity: "ADDRESS", - * ikeSaLifetimeSeconds: 86401, + * ikeSaLifetimeSeconds: 86400, * ipsecEncryptAlgorithm: "3DES-CBC", * ipsecIntegrityAlgorithm: "SHA1", * ipsecPfsDhGroup: "NULL", - * ipsecSaLifetimeSeconds: 7200, - * ipsecSaLifetimeTraffic: 2570, - * preShareKey: "testt", + * ipsecSaLifetimeSeconds: 14400, + * ipsecSaLifetimeTraffic: 4096000000, + * negotiationType: "flowTrigger", + * preShareKey: "your_pre_share_key", + * routeType: "StaticRoute", * securityGroupPolicies: [{ * localCidrBlock: "172.16.0.0/16", * remoteCidrBlocks: ["2.2.2.0/26"], * }], * tags: { - * test: "testt", + * createBy: "Terraform", * }, - * vpcId: "vpc-dk8zmwuf", - * vpnGatewayId: "vpngw-8ccsnclt", + * vpcId: "vpc-6ccw0s5l", + * vpnGatewayId: "vpngw-33p5vnwd", * }); * ``` * @@ -82,6 +93,10 @@ export class Connection extends pulumi.CustomResource { return obj['__pulumiType'] === Connection.__pulumiType; } + /** + * BGP config. + */ + public readonly bgpConfig!: pulumi.Output; /** * Create time of the VPN connection. */ @@ -110,6 +125,10 @@ export class Connection extends pulumi.CustomResource { * Encrypt proto of the VPN connection. */ public /*out*/ readonly encryptProto!: pulumi.Output; + /** + * VPN channel health check configuration. + */ + public readonly healthCheckConfig!: pulumi.Output; /** * Health check the address of this terminal. */ @@ -194,6 +213,10 @@ export class Connection extends pulumi.CustomResource { * Name of the VPN connection. The length of character is limited to 1-60. */ public readonly name!: pulumi.Output; + /** + * The default negotiation type is `active`. Optional values: `active` (active negotiation), `passive` (passive negotiation), `flowTrigger` (traffic negotiation). + */ + public readonly negotiationType!: pulumi.Output; /** * Net status of the VPN connection. Valid value: `AVAILABLE`. */ @@ -203,7 +226,7 @@ export class Connection extends pulumi.CustomResource { */ public readonly preShareKey!: pulumi.Output; /** - * Route type of the VPN connection. Valid value: `STATIC`, `StaticRoute`, `Policy`. + * Route type of the VPN connection. Valid value: `STATIC`, `StaticRoute`, `Policy`, `Bgp`. */ public readonly routeType!: pulumi.Output; /** @@ -244,6 +267,7 @@ export class Connection extends pulumi.CustomResource { opts = opts || {}; if (opts.id) { const state = argsOrState as ConnectionState | undefined; + resourceInputs["bgpConfig"] = state ? state.bgpConfig : undefined; resourceInputs["createTime"] = state ? state.createTime : undefined; resourceInputs["customerGatewayId"] = state ? state.customerGatewayId : undefined; resourceInputs["dpdAction"] = state ? state.dpdAction : undefined; @@ -251,6 +275,7 @@ export class Connection extends pulumi.CustomResource { resourceInputs["dpdTimeout"] = state ? state.dpdTimeout : undefined; resourceInputs["enableHealthCheck"] = state ? state.enableHealthCheck : undefined; resourceInputs["encryptProto"] = state ? state.encryptProto : undefined; + resourceInputs["healthCheckConfig"] = state ? state.healthCheckConfig : undefined; resourceInputs["healthCheckLocalIp"] = state ? state.healthCheckLocalIp : undefined; resourceInputs["healthCheckRemoteIp"] = state ? state.healthCheckRemoteIp : undefined; resourceInputs["ikeDhGroupName"] = state ? state.ikeDhGroupName : undefined; @@ -272,6 +297,7 @@ export class Connection extends pulumi.CustomResource { resourceInputs["ipsecSaLifetimeTraffic"] = state ? state.ipsecSaLifetimeTraffic : undefined; resourceInputs["isCcnType"] = state ? state.isCcnType : undefined; resourceInputs["name"] = state ? state.name : undefined; + resourceInputs["negotiationType"] = state ? state.negotiationType : undefined; resourceInputs["netStatus"] = state ? state.netStatus : undefined; resourceInputs["preShareKey"] = state ? state.preShareKey : undefined; resourceInputs["routeType"] = state ? state.routeType : undefined; @@ -292,11 +318,13 @@ export class Connection extends pulumi.CustomResource { if ((!args || args.vpnGatewayId === undefined) && !opts.urn) { throw new Error("Missing required property 'vpnGatewayId'"); } + resourceInputs["bgpConfig"] = args ? args.bgpConfig : undefined; resourceInputs["customerGatewayId"] = args ? args.customerGatewayId : undefined; resourceInputs["dpdAction"] = args ? args.dpdAction : undefined; resourceInputs["dpdEnable"] = args ? args.dpdEnable : undefined; resourceInputs["dpdTimeout"] = args ? args.dpdTimeout : undefined; resourceInputs["enableHealthCheck"] = args ? args.enableHealthCheck : undefined; + resourceInputs["healthCheckConfig"] = args ? args.healthCheckConfig : undefined; resourceInputs["healthCheckLocalIp"] = args ? args.healthCheckLocalIp : undefined; resourceInputs["healthCheckRemoteIp"] = args ? args.healthCheckRemoteIp : undefined; resourceInputs["ikeDhGroupName"] = args ? args.ikeDhGroupName : undefined; @@ -317,6 +345,7 @@ export class Connection extends pulumi.CustomResource { resourceInputs["ipsecSaLifetimeSeconds"] = args ? args.ipsecSaLifetimeSeconds : undefined; resourceInputs["ipsecSaLifetimeTraffic"] = args ? args.ipsecSaLifetimeTraffic : undefined; resourceInputs["name"] = args ? args.name : undefined; + resourceInputs["negotiationType"] = args ? args.negotiationType : undefined; resourceInputs["preShareKey"] = args ? args.preShareKey : undefined; resourceInputs["routeType"] = args ? args.routeType : undefined; resourceInputs["securityGroupPolicies"] = args ? args.securityGroupPolicies : undefined; @@ -339,6 +368,10 @@ export class Connection extends pulumi.CustomResource { * Input properties used for looking up and filtering Connection resources. */ export interface ConnectionState { + /** + * BGP config. + */ + bgpConfig?: pulumi.Input; /** * Create time of the VPN connection. */ @@ -367,6 +400,10 @@ export interface ConnectionState { * Encrypt proto of the VPN connection. */ encryptProto?: pulumi.Input; + /** + * VPN channel health check configuration. + */ + healthCheckConfig?: pulumi.Input; /** * Health check the address of this terminal. */ @@ -451,6 +488,10 @@ export interface ConnectionState { * Name of the VPN connection. The length of character is limited to 1-60. */ name?: pulumi.Input; + /** + * The default negotiation type is `active`. Optional values: `active` (active negotiation), `passive` (passive negotiation), `flowTrigger` (traffic negotiation). + */ + negotiationType?: pulumi.Input; /** * Net status of the VPN connection. Valid value: `AVAILABLE`. */ @@ -460,7 +501,7 @@ export interface ConnectionState { */ preShareKey?: pulumi.Input; /** - * Route type of the VPN connection. Valid value: `STATIC`, `StaticRoute`, `Policy`. + * Route type of the VPN connection. Valid value: `STATIC`, `StaticRoute`, `Policy`, `Bgp`. */ routeType?: pulumi.Input; /** @@ -493,6 +534,10 @@ export interface ConnectionState { * The set of arguments for constructing a Connection resource. */ export interface ConnectionArgs { + /** + * BGP config. + */ + bgpConfig?: pulumi.Input; /** * ID of the customer gateway. */ @@ -513,6 +558,10 @@ export interface ConnectionArgs { * Whether intra-tunnel health checks are supported. */ enableHealthCheck?: pulumi.Input; + /** + * VPN channel health check configuration. + */ + healthCheckConfig?: pulumi.Input; /** * Health check the address of this terminal. */ @@ -593,12 +642,16 @@ export interface ConnectionArgs { * Name of the VPN connection. The length of character is limited to 1-60. */ name?: pulumi.Input; + /** + * The default negotiation type is `active`. Optional values: `active` (active negotiation), `passive` (passive negotiation), `flowTrigger` (traffic negotiation). + */ + negotiationType?: pulumi.Input; /** * Pre-shared key of the VPN connection. */ preShareKey: pulumi.Input; /** - * Route type of the VPN connection. Valid value: `STATIC`, `StaticRoute`, `Policy`. + * Route type of the VPN connection. Valid value: `STATIC`, `StaticRoute`, `Policy`, `Bgp`. */ routeType?: pulumi.Input; /** diff --git a/sdk/python/tencentcloud_iac_pulumi/__init__.py b/sdk/python/tencentcloud_iac_pulumi/__init__.py index dc8985bb1..2f6849770 100644 --- a/sdk/python/tencentcloud_iac_pulumi/__init__.py +++ b/sdk/python/tencentcloud_iac_pulumi/__init__.py @@ -2016,6 +2016,14 @@ "tencentcloud:Cls/ckafkaConsumer:CkafkaConsumer": "CkafkaConsumer" } }, + { + "pkg": "tencentcloud", + "mod": "Cls/cloudProductLogTask", + "fqn": "tencentcloud_iac_pulumi.cls", + "classes": { + "tencentcloud:Cls/cloudProductLogTask:CloudProductLogTask": "CloudProductLogTask" + } + }, { "pkg": "tencentcloud", "mod": "Cls/config", @@ -2104,6 +2112,14 @@ "tencentcloud:Cls/machineGroup:MachineGroup": "MachineGroup" } }, + { + "pkg": "tencentcloud", + "mod": "Cls/noticeContent", + "fqn": "tencentcloud_iac_pulumi.cls", + "classes": { + "tencentcloud:Cls/noticeContent:NoticeContent": "NoticeContent" + } + }, { "pkg": "tencentcloud", "mod": "Cls/scheduledSql", @@ -6312,6 +6328,14 @@ "tencentcloud:Rum/whitelist:Whitelist": "Whitelist" } }, + { + "pkg": "tencentcloud", + "mod": "Scf/customDomain", + "fqn": "tencentcloud_iac_pulumi.scf", + "classes": { + "tencentcloud:Scf/customDomain:CustomDomain": "CustomDomain" + } + }, { "pkg": "tencentcloud", "mod": "Scf/function", diff --git a/sdk/python/tencentcloud_iac_pulumi/as_/scaling_config.py b/sdk/python/tencentcloud_iac_pulumi/as_/scaling_config.py index 403c625cc..7cc96f499 100644 --- a/sdk/python/tencentcloud_iac_pulumi/as_/scaling_config.py +++ b/sdk/python/tencentcloud_iac_pulumi/as_/scaling_config.py @@ -20,6 +20,7 @@ def __init__(__self__, *, instance_types: pulumi.Input[Sequence[pulumi.Input[str]]], cam_role_name: Optional[pulumi.Input[str]] = None, data_disks: Optional[pulumi.Input[Sequence[pulumi.Input['ScalingConfigDataDiskArgs']]]] = None, + dedicated_cluster_id: Optional[pulumi.Input[str]] = None, disk_type_policy: Optional[pulumi.Input[str]] = None, enhanced_automation_tools_service: Optional[pulumi.Input[bool]] = None, enhanced_monitor_service: Optional[pulumi.Input[bool]] = None, @@ -51,6 +52,7 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input[str]]] instance_types: Specified types of CVM instances. :param pulumi.Input[str] cam_role_name: CAM role name authorized to access. :param pulumi.Input[Sequence[pulumi.Input['ScalingConfigDataDiskArgs']]] data_disks: Configurations of data disk. + :param pulumi.Input[str] dedicated_cluster_id: Dedicated Cluster ID. :param pulumi.Input[str] disk_type_policy: Policy of cloud disk type. Valid values: `ORIGINAL` and `AUTOMATIC`. Default is `ORIGINAL`. :param pulumi.Input[bool] enhanced_automation_tools_service: To specify whether to enable cloud automation tools service. :param pulumi.Input[bool] enhanced_monitor_service: To specify whether to enable cloud monitor service. Default is `TRUE`. @@ -58,7 +60,7 @@ def __init__(__self__, *, :param pulumi.Input['ScalingConfigHostNameSettingsArgs'] host_name_settings: Related settings of the cloud server hostname (HostName). :param pulumi.Input[str] image_family: Image Family Name. Either Image ID or Image Family Name must be provided, but not both. :param pulumi.Input[str] image_id: An available image ID for a cvm instance. - :param pulumi.Input[str] instance_charge_type: Charge type of instance. Valid values are `PREPAID`, `POSTPAID_BY_HOUR`, `SPOTPAID`. The default is `POSTPAID_BY_HOUR`. NOTE: `SPOTPAID` instance must set `spot_instance_type` and `spot_max_price` at the same time. + :param pulumi.Input[str] instance_charge_type: Charge type of instance. Valid values are `PREPAID`, `POSTPAID_BY_HOUR`, `SPOTPAID`, `CDCPAID`. The default is `POSTPAID_BY_HOUR`. NOTE: `SPOTPAID` instance must set `spot_instance_type` and `spot_max_price` at the same time. :param pulumi.Input[int] instance_charge_type_prepaid_period: The tenancy (in month) of the prepaid instance, NOTE: it only works when instance_charge_type is set to `PREPAID`. Valid values are `1`, `2`, `3`, `4`, `5`, `6`, `7`, `8`, `9`, `10`, `11`, `12`, `24`, `36`. :param pulumi.Input[str] instance_charge_type_prepaid_renew_flag: Auto renewal flag. Valid values: `NOTIFY_AND_AUTO_RENEW`: notify upon expiration and renew automatically, `NOTIFY_AND_MANUAL_RENEW`: notify upon expiration but do not renew automatically, `DISABLE_NOTIFY_AND_MANUAL_RENEW`: neither notify upon expiration nor renew automatically. Default value: `NOTIFY_AND_MANUAL_RENEW`. If this parameter is specified as `NOTIFY_AND_AUTO_RENEW`, the instance will be automatically renewed on a monthly basis if the account balance is sufficient. NOTE: it only works when instance_charge_type is set to `PREPAID`. :param pulumi.Input['ScalingConfigInstanceNameSettingsArgs'] instance_name_settings: Settings of CVM instance names. @@ -83,6 +85,8 @@ def __init__(__self__, *, pulumi.set(__self__, "cam_role_name", cam_role_name) if data_disks is not None: pulumi.set(__self__, "data_disks", data_disks) + if dedicated_cluster_id is not None: + pulumi.set(__self__, "dedicated_cluster_id", dedicated_cluster_id) if disk_type_policy is not None: pulumi.set(__self__, "disk_type_policy", disk_type_policy) if enhanced_automation_tools_service is not None: @@ -182,6 +186,18 @@ def data_disks(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['ScalingConf def data_disks(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['ScalingConfigDataDiskArgs']]]]): pulumi.set(self, "data_disks", value) + @property + @pulumi.getter(name="dedicatedClusterId") + def dedicated_cluster_id(self) -> Optional[pulumi.Input[str]]: + """ + Dedicated Cluster ID. + """ + return pulumi.get(self, "dedicated_cluster_id") + + @dedicated_cluster_id.setter + def dedicated_cluster_id(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "dedicated_cluster_id", value) + @property @pulumi.getter(name="diskTypePolicy") def disk_type_policy(self) -> Optional[pulumi.Input[str]]: @@ -270,7 +286,7 @@ def image_id(self, value: Optional[pulumi.Input[str]]): @pulumi.getter(name="instanceChargeType") def instance_charge_type(self) -> Optional[pulumi.Input[str]]: """ - Charge type of instance. Valid values are `PREPAID`, `POSTPAID_BY_HOUR`, `SPOTPAID`. The default is `POSTPAID_BY_HOUR`. NOTE: `SPOTPAID` instance must set `spot_instance_type` and `spot_max_price` at the same time. + Charge type of instance. Valid values are `PREPAID`, `POSTPAID_BY_HOUR`, `SPOTPAID`, `CDCPAID`. The default is `POSTPAID_BY_HOUR`. NOTE: `SPOTPAID` instance must set `spot_instance_type` and `spot_max_price` at the same time. """ return pulumi.get(self, "instance_charge_type") @@ -490,6 +506,7 @@ def __init__(__self__, *, configuration_name: Optional[pulumi.Input[str]] = None, create_time: Optional[pulumi.Input[str]] = None, data_disks: Optional[pulumi.Input[Sequence[pulumi.Input['ScalingConfigDataDiskArgs']]]] = None, + dedicated_cluster_id: Optional[pulumi.Input[str]] = None, disk_type_policy: Optional[pulumi.Input[str]] = None, enhanced_automation_tools_service: Optional[pulumi.Input[bool]] = None, enhanced_monitor_service: Optional[pulumi.Input[bool]] = None, @@ -523,6 +540,7 @@ def __init__(__self__, *, :param pulumi.Input[str] configuration_name: Name of a launch configuration. :param pulumi.Input[str] create_time: The time when the launch configuration was created. :param pulumi.Input[Sequence[pulumi.Input['ScalingConfigDataDiskArgs']]] data_disks: Configurations of data disk. + :param pulumi.Input[str] dedicated_cluster_id: Dedicated Cluster ID. :param pulumi.Input[str] disk_type_policy: Policy of cloud disk type. Valid values: `ORIGINAL` and `AUTOMATIC`. Default is `ORIGINAL`. :param pulumi.Input[bool] enhanced_automation_tools_service: To specify whether to enable cloud automation tools service. :param pulumi.Input[bool] enhanced_monitor_service: To specify whether to enable cloud monitor service. Default is `TRUE`. @@ -530,7 +548,7 @@ def __init__(__self__, *, :param pulumi.Input['ScalingConfigHostNameSettingsArgs'] host_name_settings: Related settings of the cloud server hostname (HostName). :param pulumi.Input[str] image_family: Image Family Name. Either Image ID or Image Family Name must be provided, but not both. :param pulumi.Input[str] image_id: An available image ID for a cvm instance. - :param pulumi.Input[str] instance_charge_type: Charge type of instance. Valid values are `PREPAID`, `POSTPAID_BY_HOUR`, `SPOTPAID`. The default is `POSTPAID_BY_HOUR`. NOTE: `SPOTPAID` instance must set `spot_instance_type` and `spot_max_price` at the same time. + :param pulumi.Input[str] instance_charge_type: Charge type of instance. Valid values are `PREPAID`, `POSTPAID_BY_HOUR`, `SPOTPAID`, `CDCPAID`. The default is `POSTPAID_BY_HOUR`. NOTE: `SPOTPAID` instance must set `spot_instance_type` and `spot_max_price` at the same time. :param pulumi.Input[int] instance_charge_type_prepaid_period: The tenancy (in month) of the prepaid instance, NOTE: it only works when instance_charge_type is set to `PREPAID`. Valid values are `1`, `2`, `3`, `4`, `5`, `6`, `7`, `8`, `9`, `10`, `11`, `12`, `24`, `36`. :param pulumi.Input[str] instance_charge_type_prepaid_renew_flag: Auto renewal flag. Valid values: `NOTIFY_AND_AUTO_RENEW`: notify upon expiration and renew automatically, `NOTIFY_AND_MANUAL_RENEW`: notify upon expiration but do not renew automatically, `DISABLE_NOTIFY_AND_MANUAL_RENEW`: neither notify upon expiration nor renew automatically. Default value: `NOTIFY_AND_MANUAL_RENEW`. If this parameter is specified as `NOTIFY_AND_AUTO_RENEW`, the instance will be automatically renewed on a monthly basis if the account balance is sufficient. NOTE: it only works when instance_charge_type is set to `PREPAID`. :param pulumi.Input['ScalingConfigInstanceNameSettingsArgs'] instance_name_settings: Settings of CVM instance names. @@ -559,6 +577,8 @@ def __init__(__self__, *, pulumi.set(__self__, "create_time", create_time) if data_disks is not None: pulumi.set(__self__, "data_disks", data_disks) + if dedicated_cluster_id is not None: + pulumi.set(__self__, "dedicated_cluster_id", dedicated_cluster_id) if disk_type_policy is not None: pulumi.set(__self__, "disk_type_policy", disk_type_policy) if enhanced_automation_tools_service is not None: @@ -662,6 +682,18 @@ def data_disks(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['ScalingConf def data_disks(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['ScalingConfigDataDiskArgs']]]]): pulumi.set(self, "data_disks", value) + @property + @pulumi.getter(name="dedicatedClusterId") + def dedicated_cluster_id(self) -> Optional[pulumi.Input[str]]: + """ + Dedicated Cluster ID. + """ + return pulumi.get(self, "dedicated_cluster_id") + + @dedicated_cluster_id.setter + def dedicated_cluster_id(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "dedicated_cluster_id", value) + @property @pulumi.getter(name="diskTypePolicy") def disk_type_policy(self) -> Optional[pulumi.Input[str]]: @@ -750,7 +782,7 @@ def image_id(self, value: Optional[pulumi.Input[str]]): @pulumi.getter(name="instanceChargeType") def instance_charge_type(self) -> Optional[pulumi.Input[str]]: """ - Charge type of instance. Valid values are `PREPAID`, `POSTPAID_BY_HOUR`, `SPOTPAID`. The default is `POSTPAID_BY_HOUR`. NOTE: `SPOTPAID` instance must set `spot_instance_type` and `spot_max_price` at the same time. + Charge type of instance. Valid values are `PREPAID`, `POSTPAID_BY_HOUR`, `SPOTPAID`, `CDCPAID`. The default is `POSTPAID_BY_HOUR`. NOTE: `SPOTPAID` instance must set `spot_instance_type` and `spot_max_price` at the same time. """ return pulumi.get(self, "instance_charge_type") @@ -995,6 +1027,7 @@ def __init__(__self__, cam_role_name: Optional[pulumi.Input[str]] = None, configuration_name: Optional[pulumi.Input[str]] = None, data_disks: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['ScalingConfigDataDiskArgs']]]]] = None, + dedicated_cluster_id: Optional[pulumi.Input[str]] = None, disk_type_policy: Optional[pulumi.Input[str]] = None, enhanced_automation_tools_service: Optional[pulumi.Input[bool]] = None, enhanced_monitor_service: Optional[pulumi.Input[bool]] = None, @@ -1029,6 +1062,8 @@ def __init__(__self__, ## Example Usage + ### Create a normal configuration + ```python import pulumi @@ -1036,11 +1071,11 @@ def __init__(__self__, import tencentcloud_iac_pulumi as tencentcloud example_instance = tencentcloud.Images.get_instance(image_types=["PUBLIC_IMAGE"], - os_name="TencentOS Server 3.2 (Final)") + os_name="TencentOS Server 4 for x86_64") example_scaling_config = tencentcloud.as_.ScalingConfig("exampleScalingConfig", - configuration_name="example-launch-configuration", + configuration_name="tf-example", image_id=example_instance.images[0].image_id, - instance_types=["SA1.SMALL1"], + instance_types=["SA5.MEDIUM4"], project_id=0, system_disk_type="CLOUD_PREMIUM", system_disk_size=50, @@ -1057,7 +1092,7 @@ def __init__(__self__, enhanced_automation_tools_service=False, user_data="dGVzdA==", host_name_settings=tencentcloud.as_.ScalingConfigHostNameSettingsArgs( - host_name="host-name-test", + host_name="host-name", host_name_style="UNIQUE", ), instance_tags={ @@ -1075,11 +1110,11 @@ def __init__(__self__, import tencentcloud_iac_pulumi as tencentcloud example_instance = tencentcloud.Images.get_instance(image_types=["PUBLIC_IMAGE"], - os_name="TencentOS Server 3.2 (Final)") + os_name="TencentOS Server 4 for x86_64") example_scaling_config = tencentcloud.as_.ScalingConfig("exampleScalingConfig", - configuration_name="launch-configuration", + configuration_name="tf-example", image_id=example_instance.images[0].image_id, - instance_types=["SA1.SMALL1"], + instance_types=["SA5.MEDIUM4"], instance_charge_type="SPOTPAID", spot_instance_type="one-time", spot_max_price="1000") @@ -1113,6 +1148,47 @@ def __init__(__self__, ``` + ### Create a CDC configuration + + + ```python + import pulumi + import pulumi_tencentcloud as tencentcloud + import tencentcloud_iac_pulumi as tencentcloud + + example_instance = tencentcloud.Images.get_instance(image_types=["PUBLIC_IMAGE"], + os_name="TencentOS Server 4 for x86_64") + example_scaling_config = tencentcloud.as_.ScalingConfig("exampleScalingConfig", + configuration_name="tf-example", + image_id=example_instance.images[0].image_id, + instance_types=["SA5.MEDIUM4"], + project_id=0, + system_disk_type="CLOUD_PREMIUM", + system_disk_size=50, + instance_charge_type="CDCPAID", + dedicated_cluster_id="cluster-262n63e8", + data_disks=[tencentcloud.as_.ScalingConfigDataDiskArgs( + disk_type="CLOUD_PREMIUM", + disk_size=50, + )], + internet_charge_type="TRAFFIC_POSTPAID_BY_HOUR", + internet_max_bandwidth_out=10, + public_ip_assigned=True, + password="Test@123#", + enhanced_security_service=False, + enhanced_monitor_service=False, + enhanced_automation_tools_service=False, + user_data="dGVzdA==", + host_name_settings=tencentcloud.as_.ScalingConfigHostNameSettingsArgs( + host_name="host-name", + host_name_style="UNIQUE", + ), + instance_tags={ + "tag": "example", + }) + ``` + + ## Import AutoScaling Configuration can be imported using the id, e.g. @@ -1126,6 +1202,7 @@ def __init__(__self__, :param pulumi.Input[str] cam_role_name: CAM role name authorized to access. :param pulumi.Input[str] configuration_name: Name of a launch configuration. :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['ScalingConfigDataDiskArgs']]]] data_disks: Configurations of data disk. + :param pulumi.Input[str] dedicated_cluster_id: Dedicated Cluster ID. :param pulumi.Input[str] disk_type_policy: Policy of cloud disk type. Valid values: `ORIGINAL` and `AUTOMATIC`. Default is `ORIGINAL`. :param pulumi.Input[bool] enhanced_automation_tools_service: To specify whether to enable cloud automation tools service. :param pulumi.Input[bool] enhanced_monitor_service: To specify whether to enable cloud monitor service. Default is `TRUE`. @@ -1133,7 +1210,7 @@ def __init__(__self__, :param pulumi.Input[pulumi.InputType['ScalingConfigHostNameSettingsArgs']] host_name_settings: Related settings of the cloud server hostname (HostName). :param pulumi.Input[str] image_family: Image Family Name. Either Image ID or Image Family Name must be provided, but not both. :param pulumi.Input[str] image_id: An available image ID for a cvm instance. - :param pulumi.Input[str] instance_charge_type: Charge type of instance. Valid values are `PREPAID`, `POSTPAID_BY_HOUR`, `SPOTPAID`. The default is `POSTPAID_BY_HOUR`. NOTE: `SPOTPAID` instance must set `spot_instance_type` and `spot_max_price` at the same time. + :param pulumi.Input[str] instance_charge_type: Charge type of instance. Valid values are `PREPAID`, `POSTPAID_BY_HOUR`, `SPOTPAID`, `CDCPAID`. The default is `POSTPAID_BY_HOUR`. NOTE: `SPOTPAID` instance must set `spot_instance_type` and `spot_max_price` at the same time. :param pulumi.Input[int] instance_charge_type_prepaid_period: The tenancy (in month) of the prepaid instance, NOTE: it only works when instance_charge_type is set to `PREPAID`. Valid values are `1`, `2`, `3`, `4`, `5`, `6`, `7`, `8`, `9`, `10`, `11`, `12`, `24`, `36`. :param pulumi.Input[str] instance_charge_type_prepaid_renew_flag: Auto renewal flag. Valid values: `NOTIFY_AND_AUTO_RENEW`: notify upon expiration and renew automatically, `NOTIFY_AND_MANUAL_RENEW`: notify upon expiration but do not renew automatically, `DISABLE_NOTIFY_AND_MANUAL_RENEW`: neither notify upon expiration nor renew automatically. Default value: `NOTIFY_AND_MANUAL_RENEW`. If this parameter is specified as `NOTIFY_AND_AUTO_RENEW`, the instance will be automatically renewed on a monthly basis if the account balance is sufficient. NOTE: it only works when instance_charge_type is set to `PREPAID`. :param pulumi.Input[pulumi.InputType['ScalingConfigInstanceNameSettingsArgs']] instance_name_settings: Settings of CVM instance names. @@ -1166,6 +1243,8 @@ def __init__(__self__, ## Example Usage + ### Create a normal configuration + ```python import pulumi @@ -1173,11 +1252,11 @@ def __init__(__self__, import tencentcloud_iac_pulumi as tencentcloud example_instance = tencentcloud.Images.get_instance(image_types=["PUBLIC_IMAGE"], - os_name="TencentOS Server 3.2 (Final)") + os_name="TencentOS Server 4 for x86_64") example_scaling_config = tencentcloud.as_.ScalingConfig("exampleScalingConfig", - configuration_name="example-launch-configuration", + configuration_name="tf-example", image_id=example_instance.images[0].image_id, - instance_types=["SA1.SMALL1"], + instance_types=["SA5.MEDIUM4"], project_id=0, system_disk_type="CLOUD_PREMIUM", system_disk_size=50, @@ -1194,7 +1273,7 @@ def __init__(__self__, enhanced_automation_tools_service=False, user_data="dGVzdA==", host_name_settings=tencentcloud.as_.ScalingConfigHostNameSettingsArgs( - host_name="host-name-test", + host_name="host-name", host_name_style="UNIQUE", ), instance_tags={ @@ -1212,11 +1291,11 @@ def __init__(__self__, import tencentcloud_iac_pulumi as tencentcloud example_instance = tencentcloud.Images.get_instance(image_types=["PUBLIC_IMAGE"], - os_name="TencentOS Server 3.2 (Final)") + os_name="TencentOS Server 4 for x86_64") example_scaling_config = tencentcloud.as_.ScalingConfig("exampleScalingConfig", - configuration_name="launch-configuration", + configuration_name="tf-example", image_id=example_instance.images[0].image_id, - instance_types=["SA1.SMALL1"], + instance_types=["SA5.MEDIUM4"], instance_charge_type="SPOTPAID", spot_instance_type="one-time", spot_max_price="1000") @@ -1250,6 +1329,47 @@ def __init__(__self__, ``` + ### Create a CDC configuration + + + ```python + import pulumi + import pulumi_tencentcloud as tencentcloud + import tencentcloud_iac_pulumi as tencentcloud + + example_instance = tencentcloud.Images.get_instance(image_types=["PUBLIC_IMAGE"], + os_name="TencentOS Server 4 for x86_64") + example_scaling_config = tencentcloud.as_.ScalingConfig("exampleScalingConfig", + configuration_name="tf-example", + image_id=example_instance.images[0].image_id, + instance_types=["SA5.MEDIUM4"], + project_id=0, + system_disk_type="CLOUD_PREMIUM", + system_disk_size=50, + instance_charge_type="CDCPAID", + dedicated_cluster_id="cluster-262n63e8", + data_disks=[tencentcloud.as_.ScalingConfigDataDiskArgs( + disk_type="CLOUD_PREMIUM", + disk_size=50, + )], + internet_charge_type="TRAFFIC_POSTPAID_BY_HOUR", + internet_max_bandwidth_out=10, + public_ip_assigned=True, + password="Test@123#", + enhanced_security_service=False, + enhanced_monitor_service=False, + enhanced_automation_tools_service=False, + user_data="dGVzdA==", + host_name_settings=tencentcloud.as_.ScalingConfigHostNameSettingsArgs( + host_name="host-name", + host_name_style="UNIQUE", + ), + instance_tags={ + "tag": "example", + }) + ``` + + ## Import AutoScaling Configuration can be imported using the id, e.g. @@ -1276,6 +1396,7 @@ def _internal_init(__self__, cam_role_name: Optional[pulumi.Input[str]] = None, configuration_name: Optional[pulumi.Input[str]] = None, data_disks: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['ScalingConfigDataDiskArgs']]]]] = None, + dedicated_cluster_id: Optional[pulumi.Input[str]] = None, disk_type_policy: Optional[pulumi.Input[str]] = None, enhanced_automation_tools_service: Optional[pulumi.Input[bool]] = None, enhanced_monitor_service: Optional[pulumi.Input[bool]] = None, @@ -1316,6 +1437,7 @@ def _internal_init(__self__, raise TypeError("Missing required property 'configuration_name'") __props__.__dict__["configuration_name"] = configuration_name __props__.__dict__["data_disks"] = data_disks + __props__.__dict__["dedicated_cluster_id"] = dedicated_cluster_id __props__.__dict__["disk_type_policy"] = disk_type_policy __props__.__dict__["enhanced_automation_tools_service"] = enhanced_automation_tools_service __props__.__dict__["enhanced_monitor_service"] = enhanced_monitor_service @@ -1362,6 +1484,7 @@ def get(resource_name: str, configuration_name: Optional[pulumi.Input[str]] = None, create_time: Optional[pulumi.Input[str]] = None, data_disks: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['ScalingConfigDataDiskArgs']]]]] = None, + dedicated_cluster_id: Optional[pulumi.Input[str]] = None, disk_type_policy: Optional[pulumi.Input[str]] = None, enhanced_automation_tools_service: Optional[pulumi.Input[bool]] = None, enhanced_monitor_service: Optional[pulumi.Input[bool]] = None, @@ -1400,6 +1523,7 @@ def get(resource_name: str, :param pulumi.Input[str] configuration_name: Name of a launch configuration. :param pulumi.Input[str] create_time: The time when the launch configuration was created. :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['ScalingConfigDataDiskArgs']]]] data_disks: Configurations of data disk. + :param pulumi.Input[str] dedicated_cluster_id: Dedicated Cluster ID. :param pulumi.Input[str] disk_type_policy: Policy of cloud disk type. Valid values: `ORIGINAL` and `AUTOMATIC`. Default is `ORIGINAL`. :param pulumi.Input[bool] enhanced_automation_tools_service: To specify whether to enable cloud automation tools service. :param pulumi.Input[bool] enhanced_monitor_service: To specify whether to enable cloud monitor service. Default is `TRUE`. @@ -1407,7 +1531,7 @@ def get(resource_name: str, :param pulumi.Input[pulumi.InputType['ScalingConfigHostNameSettingsArgs']] host_name_settings: Related settings of the cloud server hostname (HostName). :param pulumi.Input[str] image_family: Image Family Name. Either Image ID or Image Family Name must be provided, but not both. :param pulumi.Input[str] image_id: An available image ID for a cvm instance. - :param pulumi.Input[str] instance_charge_type: Charge type of instance. Valid values are `PREPAID`, `POSTPAID_BY_HOUR`, `SPOTPAID`. The default is `POSTPAID_BY_HOUR`. NOTE: `SPOTPAID` instance must set `spot_instance_type` and `spot_max_price` at the same time. + :param pulumi.Input[str] instance_charge_type: Charge type of instance. Valid values are `PREPAID`, `POSTPAID_BY_HOUR`, `SPOTPAID`, `CDCPAID`. The default is `POSTPAID_BY_HOUR`. NOTE: `SPOTPAID` instance must set `spot_instance_type` and `spot_max_price` at the same time. :param pulumi.Input[int] instance_charge_type_prepaid_period: The tenancy (in month) of the prepaid instance, NOTE: it only works when instance_charge_type is set to `PREPAID`. Valid values are `1`, `2`, `3`, `4`, `5`, `6`, `7`, `8`, `9`, `10`, `11`, `12`, `24`, `36`. :param pulumi.Input[str] instance_charge_type_prepaid_renew_flag: Auto renewal flag. Valid values: `NOTIFY_AND_AUTO_RENEW`: notify upon expiration and renew automatically, `NOTIFY_AND_MANUAL_RENEW`: notify upon expiration but do not renew automatically, `DISABLE_NOTIFY_AND_MANUAL_RENEW`: neither notify upon expiration nor renew automatically. Default value: `NOTIFY_AND_MANUAL_RENEW`. If this parameter is specified as `NOTIFY_AND_AUTO_RENEW`, the instance will be automatically renewed on a monthly basis if the account balance is sufficient. NOTE: it only works when instance_charge_type is set to `PREPAID`. :param pulumi.Input[pulumi.InputType['ScalingConfigInstanceNameSettingsArgs']] instance_name_settings: Settings of CVM instance names. @@ -1436,6 +1560,7 @@ def get(resource_name: str, __props__.__dict__["configuration_name"] = configuration_name __props__.__dict__["create_time"] = create_time __props__.__dict__["data_disks"] = data_disks + __props__.__dict__["dedicated_cluster_id"] = dedicated_cluster_id __props__.__dict__["disk_type_policy"] = disk_type_policy __props__.__dict__["enhanced_automation_tools_service"] = enhanced_automation_tools_service __props__.__dict__["enhanced_monitor_service"] = enhanced_monitor_service @@ -1497,6 +1622,14 @@ def data_disks(self) -> pulumi.Output[Optional[Sequence['outputs.ScalingConfigDa """ return pulumi.get(self, "data_disks") + @property + @pulumi.getter(name="dedicatedClusterId") + def dedicated_cluster_id(self) -> pulumi.Output[Optional[str]]: + """ + Dedicated Cluster ID. + """ + return pulumi.get(self, "dedicated_cluster_id") + @property @pulumi.getter(name="diskTypePolicy") def disk_type_policy(self) -> pulumi.Output[Optional[str]]: @@ -1557,7 +1690,7 @@ def image_id(self) -> pulumi.Output[Optional[str]]: @pulumi.getter(name="instanceChargeType") def instance_charge_type(self) -> pulumi.Output[Optional[str]]: """ - Charge type of instance. Valid values are `PREPAID`, `POSTPAID_BY_HOUR`, `SPOTPAID`. The default is `POSTPAID_BY_HOUR`. NOTE: `SPOTPAID` instance must set `spot_instance_type` and `spot_max_price` at the same time. + Charge type of instance. Valid values are `PREPAID`, `POSTPAID_BY_HOUR`, `SPOTPAID`, `CDCPAID`. The default is `POSTPAID_BY_HOUR`. NOTE: `SPOTPAID` instance must set `spot_instance_type` and `spot_max_price` at the same time. """ return pulumi.get(self, "instance_charge_type") diff --git a/sdk/python/tencentcloud_iac_pulumi/clb/_inputs.py b/sdk/python/tencentcloud_iac_pulumi/clb/_inputs.py index 0f36107d2..865623558 100644 --- a/sdk/python/tencentcloud_iac_pulumi/clb/_inputs.py +++ b/sdk/python/tencentcloud_iac_pulumi/clb/_inputs.py @@ -14,6 +14,7 @@ 'FunctionTargetsAttachmentFunctionTargetsArgs', 'FunctionTargetsAttachmentFunctionTargetsFunctionArgs', 'InstanceSnatIpArgs', + 'ListenerRuleOauthArgs', 'ReplaceCertForLbsCertificateArgs', 'SnatIpIpArgs', 'TargetGroupAttachmentsAssociationArgs', @@ -241,6 +242,45 @@ def ip(self, value: Optional[pulumi.Input[str]]): pulumi.set(self, "ip", value) +@pulumi.input_type +class ListenerRuleOauthArgs: + def __init__(__self__, *, + oauth_enable: Optional[pulumi.Input[bool]] = None, + oauth_failure_status: Optional[pulumi.Input[str]] = None): + """ + :param pulumi.Input[bool] oauth_enable: Enable or disable authentication. True: Enabled; False: Disabled. + :param pulumi.Input[str] oauth_failure_status: After all IAPs fail, the request is rejected or released. BYPASS: PASS; REJECT: Reject. + """ + if oauth_enable is not None: + pulumi.set(__self__, "oauth_enable", oauth_enable) + if oauth_failure_status is not None: + pulumi.set(__self__, "oauth_failure_status", oauth_failure_status) + + @property + @pulumi.getter(name="oauthEnable") + def oauth_enable(self) -> Optional[pulumi.Input[bool]]: + """ + Enable or disable authentication. True: Enabled; False: Disabled. + """ + return pulumi.get(self, "oauth_enable") + + @oauth_enable.setter + def oauth_enable(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "oauth_enable", value) + + @property + @pulumi.getter(name="oauthFailureStatus") + def oauth_failure_status(self) -> Optional[pulumi.Input[str]]: + """ + After all IAPs fail, the request is rejected or released. BYPASS: PASS; REJECT: Reject. + """ + return pulumi.get(self, "oauth_failure_status") + + @oauth_failure_status.setter + def oauth_failure_status(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "oauth_failure_status", value) + + @pulumi.input_type class ReplaceCertForLbsCertificateArgs: def __init__(__self__, *, diff --git a/sdk/python/tencentcloud_iac_pulumi/clb/listener_rule.py b/sdk/python/tencentcloud_iac_pulumi/clb/listener_rule.py index bf7ea4c2f..f821d7327 100644 --- a/sdk/python/tencentcloud_iac_pulumi/clb/listener_rule.py +++ b/sdk/python/tencentcloud_iac_pulumi/clb/listener_rule.py @@ -8,6 +8,8 @@ import pulumi.runtime from typing import Any, Mapping, Optional, Sequence, Union, overload from .. import _utilities +from . import outputs +from ._inputs import * __all__ = ['ListenerRuleArgs', 'ListenerRule'] @@ -34,6 +36,7 @@ def __init__(__self__, *, health_check_type: Optional[pulumi.Input[str]] = None, health_check_unhealth_num: Optional[pulumi.Input[int]] = None, http2_switch: Optional[pulumi.Input[bool]] = None, + oauth: Optional[pulumi.Input['ListenerRuleOauthArgs']] = None, quic: Optional[pulumi.Input[bool]] = None, scheduler: Optional[pulumi.Input[str]] = None, session_expire_time: Optional[pulumi.Input[int]] = None, @@ -60,6 +63,7 @@ def __init__(__self__, *, :param pulumi.Input[str] health_check_type: Type of health check. Valid value is `CUSTOM`, `PING`, `TCP`, `HTTP`, `HTTPS`, `GRPC`, `GRPCS`. :param pulumi.Input[int] health_check_unhealth_num: Unhealthy threshold of health check, and the default is `3`. If the unhealthy result is returned 3 consecutive times, indicates that the forwarding is abnormal. The value range is [2-10]. NOTES: TCP/UDP/TCP_SSL listener allows direct configuration, HTTP/HTTPS listener needs to be configured in `Clb.ListenerRule`. :param pulumi.Input[bool] http2_switch: Indicate to apply HTTP2.0 protocol or not. + :param pulumi.Input['ListenerRuleOauthArgs'] oauth: OAuth configuration information. :param pulumi.Input[bool] quic: Whether to enable QUIC. Note: QUIC can be enabled only for HTTPS domain names. :param pulumi.Input[str] scheduler: Scheduling method of the CLB listener rules. Valid values: `WRR`, `IP HASH`, `LEAST_CONN`. The default is `WRR`. NOTES: TCP/UDP/TCP_SSL listener allows direct configuration, HTTP/HTTPS listener needs to be configured in `Clb.ListenerRule`. :param pulumi.Input[int] session_expire_time: Time of session persistence within the CLB listener. NOTES: Available when scheduler is specified as `WRR`, and not available when listener protocol is `TCP_SSL`. NOTES: TCP/UDP/TCP_SSL listener allows direct configuration, HTTP/HTTPS listener needs to be configured in `Clb.ListenerRule`. @@ -102,6 +106,8 @@ def __init__(__self__, *, pulumi.set(__self__, "health_check_unhealth_num", health_check_unhealth_num) if http2_switch is not None: pulumi.set(__self__, "http2_switch", http2_switch) + if oauth is not None: + pulumi.set(__self__, "oauth", oauth) if quic is not None: pulumi.set(__self__, "quic", quic) if scheduler is not None: @@ -351,6 +357,18 @@ def http2_switch(self) -> Optional[pulumi.Input[bool]]: def http2_switch(self, value: Optional[pulumi.Input[bool]]): pulumi.set(self, "http2_switch", value) + @property + @pulumi.getter + def oauth(self) -> Optional[pulumi.Input['ListenerRuleOauthArgs']]: + """ + OAuth configuration information. + """ + return pulumi.get(self, "oauth") + + @oauth.setter + def oauth(self, value: Optional[pulumi.Input['ListenerRuleOauthArgs']]): + pulumi.set(self, "oauth", value) + @property @pulumi.getter def quic(self) -> Optional[pulumi.Input[bool]]: @@ -422,6 +440,7 @@ def __init__(__self__, *, health_check_unhealth_num: Optional[pulumi.Input[int]] = None, http2_switch: Optional[pulumi.Input[bool]] = None, listener_id: Optional[pulumi.Input[str]] = None, + oauth: Optional[pulumi.Input['ListenerRuleOauthArgs']] = None, quic: Optional[pulumi.Input[bool]] = None, rule_id: Optional[pulumi.Input[str]] = None, scheduler: Optional[pulumi.Input[str]] = None, @@ -449,6 +468,7 @@ def __init__(__self__, *, :param pulumi.Input[int] health_check_unhealth_num: Unhealthy threshold of health check, and the default is `3`. If the unhealthy result is returned 3 consecutive times, indicates that the forwarding is abnormal. The value range is [2-10]. NOTES: TCP/UDP/TCP_SSL listener allows direct configuration, HTTP/HTTPS listener needs to be configured in `Clb.ListenerRule`. :param pulumi.Input[bool] http2_switch: Indicate to apply HTTP2.0 protocol or not. :param pulumi.Input[str] listener_id: ID of CLB listener. + :param pulumi.Input['ListenerRuleOauthArgs'] oauth: OAuth configuration information. :param pulumi.Input[bool] quic: Whether to enable QUIC. Note: QUIC can be enabled only for HTTPS domain names. :param pulumi.Input[str] rule_id: ID of this CLB listener rule. :param pulumi.Input[str] scheduler: Scheduling method of the CLB listener rules. Valid values: `WRR`, `IP HASH`, `LEAST_CONN`. The default is `WRR`. NOTES: TCP/UDP/TCP_SSL listener allows direct configuration, HTTP/HTTPS listener needs to be configured in `Clb.ListenerRule`. @@ -494,6 +514,8 @@ def __init__(__self__, *, pulumi.set(__self__, "http2_switch", http2_switch) if listener_id is not None: pulumi.set(__self__, "listener_id", listener_id) + if oauth is not None: + pulumi.set(__self__, "oauth", oauth) if quic is not None: pulumi.set(__self__, "quic", quic) if rule_id is not None: @@ -735,6 +757,18 @@ def listener_id(self) -> Optional[pulumi.Input[str]]: def listener_id(self, value: Optional[pulumi.Input[str]]): pulumi.set(self, "listener_id", value) + @property + @pulumi.getter + def oauth(self) -> Optional[pulumi.Input['ListenerRuleOauthArgs']]: + """ + OAuth configuration information. + """ + return pulumi.get(self, "oauth") + + @oauth.setter + def oauth(self, value: Optional[pulumi.Input['ListenerRuleOauthArgs']]): + pulumi.set(self, "oauth", value) + @property @pulumi.getter def quic(self) -> Optional[pulumi.Input[bool]]: @@ -832,6 +866,7 @@ def __init__(__self__, health_check_unhealth_num: Optional[pulumi.Input[int]] = None, http2_switch: Optional[pulumi.Input[bool]] = None, listener_id: Optional[pulumi.Input[str]] = None, + oauth: Optional[pulumi.Input[pulumi.InputType['ListenerRuleOauthArgs']]] = None, quic: Optional[pulumi.Input[bool]] = None, scheduler: Optional[pulumi.Input[str]] = None, session_expire_time: Optional[pulumi.Input[int]] = None, @@ -929,6 +964,7 @@ def __init__(__self__, :param pulumi.Input[int] health_check_unhealth_num: Unhealthy threshold of health check, and the default is `3`. If the unhealthy result is returned 3 consecutive times, indicates that the forwarding is abnormal. The value range is [2-10]. NOTES: TCP/UDP/TCP_SSL listener allows direct configuration, HTTP/HTTPS listener needs to be configured in `Clb.ListenerRule`. :param pulumi.Input[bool] http2_switch: Indicate to apply HTTP2.0 protocol or not. :param pulumi.Input[str] listener_id: ID of CLB listener. + :param pulumi.Input[pulumi.InputType['ListenerRuleOauthArgs']] oauth: OAuth configuration information. :param pulumi.Input[bool] quic: Whether to enable QUIC. Note: QUIC can be enabled only for HTTPS domain names. :param pulumi.Input[str] scheduler: Scheduling method of the CLB listener rules. Valid values: `WRR`, `IP HASH`, `LEAST_CONN`. The default is `WRR`. NOTES: TCP/UDP/TCP_SSL listener allows direct configuration, HTTP/HTTPS listener needs to be configured in `Clb.ListenerRule`. :param pulumi.Input[int] session_expire_time: Time of session persistence within the CLB listener. NOTES: Available when scheduler is specified as `WRR`, and not available when listener protocol is `TCP_SSL`. NOTES: TCP/UDP/TCP_SSL listener allows direct configuration, HTTP/HTTPS listener needs to be configured in `Clb.ListenerRule`. @@ -1045,6 +1081,7 @@ def _internal_init(__self__, health_check_unhealth_num: Optional[pulumi.Input[int]] = None, http2_switch: Optional[pulumi.Input[bool]] = None, listener_id: Optional[pulumi.Input[str]] = None, + oauth: Optional[pulumi.Input[pulumi.InputType['ListenerRuleOauthArgs']]] = None, quic: Optional[pulumi.Input[bool]] = None, scheduler: Optional[pulumi.Input[str]] = None, session_expire_time: Optional[pulumi.Input[int]] = None, @@ -1082,6 +1119,7 @@ def _internal_init(__self__, if listener_id is None and not opts.urn: raise TypeError("Missing required property 'listener_id'") __props__.__dict__["listener_id"] = listener_id + __props__.__dict__["oauth"] = oauth __props__.__dict__["quic"] = quic __props__.__dict__["scheduler"] = scheduler __props__.__dict__["session_expire_time"] = session_expire_time @@ -1119,6 +1157,7 @@ def get(resource_name: str, health_check_unhealth_num: Optional[pulumi.Input[int]] = None, http2_switch: Optional[pulumi.Input[bool]] = None, listener_id: Optional[pulumi.Input[str]] = None, + oauth: Optional[pulumi.Input[pulumi.InputType['ListenerRuleOauthArgs']]] = None, quic: Optional[pulumi.Input[bool]] = None, rule_id: Optional[pulumi.Input[str]] = None, scheduler: Optional[pulumi.Input[str]] = None, @@ -1151,6 +1190,7 @@ def get(resource_name: str, :param pulumi.Input[int] health_check_unhealth_num: Unhealthy threshold of health check, and the default is `3`. If the unhealthy result is returned 3 consecutive times, indicates that the forwarding is abnormal. The value range is [2-10]. NOTES: TCP/UDP/TCP_SSL listener allows direct configuration, HTTP/HTTPS listener needs to be configured in `Clb.ListenerRule`. :param pulumi.Input[bool] http2_switch: Indicate to apply HTTP2.0 protocol or not. :param pulumi.Input[str] listener_id: ID of CLB listener. + :param pulumi.Input[pulumi.InputType['ListenerRuleOauthArgs']] oauth: OAuth configuration information. :param pulumi.Input[bool] quic: Whether to enable QUIC. Note: QUIC can be enabled only for HTTPS domain names. :param pulumi.Input[str] rule_id: ID of this CLB listener rule. :param pulumi.Input[str] scheduler: Scheduling method of the CLB listener rules. Valid values: `WRR`, `IP HASH`, `LEAST_CONN`. The default is `WRR`. NOTES: TCP/UDP/TCP_SSL listener allows direct configuration, HTTP/HTTPS listener needs to be configured in `Clb.ListenerRule`. @@ -1181,6 +1221,7 @@ def get(resource_name: str, __props__.__dict__["health_check_unhealth_num"] = health_check_unhealth_num __props__.__dict__["http2_switch"] = http2_switch __props__.__dict__["listener_id"] = listener_id + __props__.__dict__["oauth"] = oauth __props__.__dict__["quic"] = quic __props__.__dict__["rule_id"] = rule_id __props__.__dict__["scheduler"] = scheduler @@ -1341,6 +1382,14 @@ def listener_id(self) -> pulumi.Output[str]: """ return pulumi.get(self, "listener_id") + @property + @pulumi.getter + def oauth(self) -> pulumi.Output['outputs.ListenerRuleOauth']: + """ + OAuth configuration information. + """ + return pulumi.get(self, "oauth") + @property @pulumi.getter def quic(self) -> pulumi.Output[bool]: diff --git a/sdk/python/tencentcloud_iac_pulumi/clb/outputs.py b/sdk/python/tencentcloud_iac_pulumi/clb/outputs.py index 0933c76ce..f38c87355 100644 --- a/sdk/python/tencentcloud_iac_pulumi/clb/outputs.py +++ b/sdk/python/tencentcloud_iac_pulumi/clb/outputs.py @@ -15,6 +15,7 @@ 'FunctionTargetsAttachmentFunctionTargets', 'FunctionTargetsAttachmentFunctionTargetsFunction', 'InstanceSnatIp', + 'ListenerRuleOauth', 'ReplaceCertForLbsCertificate', 'SnatIpIp', 'TargetGroupAttachmentsAssociation', @@ -302,6 +303,56 @@ def ip(self) -> Optional[str]: return pulumi.get(self, "ip") +@pulumi.output_type +class ListenerRuleOauth(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "oauthEnable": + suggest = "oauth_enable" + elif key == "oauthFailureStatus": + suggest = "oauth_failure_status" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in ListenerRuleOauth. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + ListenerRuleOauth.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + ListenerRuleOauth.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + oauth_enable: Optional[bool] = None, + oauth_failure_status: Optional[str] = None): + """ + :param bool oauth_enable: Enable or disable authentication. True: Enabled; False: Disabled. + :param str oauth_failure_status: After all IAPs fail, the request is rejected or released. BYPASS: PASS; REJECT: Reject. + """ + if oauth_enable is not None: + pulumi.set(__self__, "oauth_enable", oauth_enable) + if oauth_failure_status is not None: + pulumi.set(__self__, "oauth_failure_status", oauth_failure_status) + + @property + @pulumi.getter(name="oauthEnable") + def oauth_enable(self) -> Optional[bool]: + """ + Enable or disable authentication. True: Enabled; False: Disabled. + """ + return pulumi.get(self, "oauth_enable") + + @property + @pulumi.getter(name="oauthFailureStatus") + def oauth_failure_status(self) -> Optional[str]: + """ + After all IAPs fail, the request is rejected or released. BYPASS: PASS; REJECT: Reject. + """ + return pulumi.get(self, "oauth_failure_status") + + @pulumi.output_type class ReplaceCertForLbsCertificate(dict): @staticmethod diff --git a/sdk/python/tencentcloud_iac_pulumi/cls/__init__.py b/sdk/python/tencentcloud_iac_pulumi/cls/__init__.py index 312504fb7..6d0161875 100644 --- a/sdk/python/tencentcloud_iac_pulumi/cls/__init__.py +++ b/sdk/python/tencentcloud_iac_pulumi/cls/__init__.py @@ -8,6 +8,7 @@ from .alarm import * from .alarm_notice import * from .ckafka_consumer import * +from .cloud_product_log_task import * from .config import * from .config_attachment import * from .config_extra import * @@ -23,6 +24,7 @@ from .kafka_recharge import * from .logset import * from .machine_group import * +from .notice_content import * from .scheduled_sql import * from .topic import * from ._inputs import * diff --git a/sdk/python/tencentcloud_iac_pulumi/cls/_inputs.py b/sdk/python/tencentcloud_iac_pulumi/cls/_inputs.py index 6b04c0e8f..0a92c9617 100644 --- a/sdk/python/tencentcloud_iac_pulumi/cls/_inputs.py +++ b/sdk/python/tencentcloud_iac_pulumi/cls/_inputs.py @@ -52,6 +52,9 @@ 'KafkaRechargeLogRechargeRuleArgs', 'KafkaRechargeProtocolArgs', 'MachineGroupMachineGroupTypeArgs', + 'NoticeContentNoticeContentsArgs', + 'NoticeContentNoticeContentsRecoveryContentArgs', + 'NoticeContentNoticeContentsTriggerContentArgs', 'ScheduledSqlDstResourceArgs', 'TopicExtendsArgs', 'TopicExtendsAnonymousAccessArgs', @@ -3230,6 +3233,170 @@ def values(self, value: pulumi.Input[Sequence[pulumi.Input[str]]]): pulumi.set(self, "values", value) +@pulumi.input_type +class NoticeContentNoticeContentsArgs: + def __init__(__self__, *, + type: pulumi.Input[str], + recovery_content: Optional[pulumi.Input['NoticeContentNoticeContentsRecoveryContentArgs']] = None, + trigger_content: Optional[pulumi.Input['NoticeContentNoticeContentsTriggerContentArgs']] = None): + """ + :param pulumi.Input[str] type: Channel type. Email: Email; Sms: SMS; WeChat: WeChat; Phone: Telephone; WeCom: Enterprise WeChat; DingTalk: DingTalk; Lark: Feishu; HTTP: Custom callback. + :param pulumi.Input['NoticeContentNoticeContentsRecoveryContentArgs'] recovery_content: Template for Alarm Recovery Notification Content. + :param pulumi.Input['NoticeContentNoticeContentsTriggerContentArgs'] trigger_content: Alarm triggered notification content template. + """ + pulumi.set(__self__, "type", type) + if recovery_content is not None: + pulumi.set(__self__, "recovery_content", recovery_content) + if trigger_content is not None: + pulumi.set(__self__, "trigger_content", trigger_content) + + @property + @pulumi.getter + def type(self) -> pulumi.Input[str]: + """ + Channel type. Email: Email; Sms: SMS; WeChat: WeChat; Phone: Telephone; WeCom: Enterprise WeChat; DingTalk: DingTalk; Lark: Feishu; HTTP: Custom callback. + """ + return pulumi.get(self, "type") + + @type.setter + def type(self, value: pulumi.Input[str]): + pulumi.set(self, "type", value) + + @property + @pulumi.getter(name="recoveryContent") + def recovery_content(self) -> Optional[pulumi.Input['NoticeContentNoticeContentsRecoveryContentArgs']]: + """ + Template for Alarm Recovery Notification Content. + """ + return pulumi.get(self, "recovery_content") + + @recovery_content.setter + def recovery_content(self, value: Optional[pulumi.Input['NoticeContentNoticeContentsRecoveryContentArgs']]): + pulumi.set(self, "recovery_content", value) + + @property + @pulumi.getter(name="triggerContent") + def trigger_content(self) -> Optional[pulumi.Input['NoticeContentNoticeContentsTriggerContentArgs']]: + """ + Alarm triggered notification content template. + """ + return pulumi.get(self, "trigger_content") + + @trigger_content.setter + def trigger_content(self, value: Optional[pulumi.Input['NoticeContentNoticeContentsTriggerContentArgs']]): + pulumi.set(self, "trigger_content", value) + + +@pulumi.input_type +class NoticeContentNoticeContentsRecoveryContentArgs: + def __init__(__self__, *, + content: Optional[pulumi.Input[str]] = None, + headers: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + title: Optional[pulumi.Input[str]] = None): + """ + :param pulumi.Input[str] content: Notification content template body information. + :param pulumi.Input[Sequence[pulumi.Input[str]]] headers: Request headers: In HTTP requests, request headers contain additional information sent by the client to the server, such as user agent, authorization credentials, expected response format, etc. Only `custom callback` supports this configuration. + :param pulumi.Input[str] title: Notification content template title information. Some notification channel types do not support 'title', please refer to the Tencent Cloud Console page. + """ + if content is not None: + pulumi.set(__self__, "content", content) + if headers is not None: + pulumi.set(__self__, "headers", headers) + if title is not None: + pulumi.set(__self__, "title", title) + + @property + @pulumi.getter + def content(self) -> Optional[pulumi.Input[str]]: + """ + Notification content template body information. + """ + return pulumi.get(self, "content") + + @content.setter + def content(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "content", value) + + @property + @pulumi.getter + def headers(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: + """ + Request headers: In HTTP requests, request headers contain additional information sent by the client to the server, such as user agent, authorization credentials, expected response format, etc. Only `custom callback` supports this configuration. + """ + return pulumi.get(self, "headers") + + @headers.setter + def headers(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]): + pulumi.set(self, "headers", value) + + @property + @pulumi.getter + def title(self) -> Optional[pulumi.Input[str]]: + """ + Notification content template title information. Some notification channel types do not support 'title', please refer to the Tencent Cloud Console page. + """ + return pulumi.get(self, "title") + + @title.setter + def title(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "title", value) + + +@pulumi.input_type +class NoticeContentNoticeContentsTriggerContentArgs: + def __init__(__self__, *, + content: Optional[pulumi.Input[str]] = None, + headers: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + title: Optional[pulumi.Input[str]] = None): + """ + :param pulumi.Input[str] content: Notification content template body information. + :param pulumi.Input[Sequence[pulumi.Input[str]]] headers: Request headers: In HTTP requests, request headers contain additional information sent by the client to the server, such as user agent, authorization credentials, expected response format, etc. Only `custom callback` supports this configuration. + :param pulumi.Input[str] title: Notification content template title information. Some notification channel types do not support 'title', please refer to the Tencent Cloud Console page. + """ + if content is not None: + pulumi.set(__self__, "content", content) + if headers is not None: + pulumi.set(__self__, "headers", headers) + if title is not None: + pulumi.set(__self__, "title", title) + + @property + @pulumi.getter + def content(self) -> Optional[pulumi.Input[str]]: + """ + Notification content template body information. + """ + return pulumi.get(self, "content") + + @content.setter + def content(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "content", value) + + @property + @pulumi.getter + def headers(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: + """ + Request headers: In HTTP requests, request headers contain additional information sent by the client to the server, such as user agent, authorization credentials, expected response format, etc. Only `custom callback` supports this configuration. + """ + return pulumi.get(self, "headers") + + @headers.setter + def headers(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]): + pulumi.set(self, "headers", value) + + @property + @pulumi.getter + def title(self) -> Optional[pulumi.Input[str]]: + """ + Notification content template title information. Some notification channel types do not support 'title', please refer to the Tencent Cloud Console page. + """ + return pulumi.get(self, "title") + + @title.setter + def title(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "title", value) + + @pulumi.input_type class ScheduledSqlDstResourceArgs: def __init__(__self__, *, diff --git a/sdk/python/tencentcloud_iac_pulumi/cls/cloud_product_log_task.py b/sdk/python/tencentcloud_iac_pulumi/cls/cloud_product_log_task.py new file mode 100644 index 000000000..b2fbf2971 --- /dev/null +++ b/sdk/python/tencentcloud_iac_pulumi/cls/cloud_product_log_task.py @@ -0,0 +1,675 @@ +# coding=utf-8 +# *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +# *** Do not edit by hand unless you're certain you know what you are doing! *** + +import copy +import warnings +import pulumi +import pulumi.runtime +from typing import Any, Mapping, Optional, Sequence, Union, overload +from .. import _utilities + +__all__ = ['CloudProductLogTaskArgs', 'CloudProductLogTask'] + +@pulumi.input_type +class CloudProductLogTaskArgs: + def __init__(__self__, *, + assumer_name: pulumi.Input[str], + cloud_product_region: pulumi.Input[str], + cls_region: pulumi.Input[str], + instance_id: pulumi.Input[str], + log_type: pulumi.Input[str], + extend: Optional[pulumi.Input[str]] = None, + logset_name: Optional[pulumi.Input[str]] = None, + topic_name: Optional[pulumi.Input[str]] = None): + """ + The set of arguments for constructing a CloudProductLogTask resource. + :param pulumi.Input[str] assumer_name: Cloud product identification, Values: CDS, CWP, CDB, TDSQL-C, MongoDB, TDStore, DCDB, MariaDB, PostgreSQL, BH, APIS. + :param pulumi.Input[str] cloud_product_region: Cloud product region. There are differences in the input format of different log types in different regions. Please refer to the following example: + - CDS(all log type): ap-guangzhou + - CDB-AUDIT: gz + - TDSQL-C-AUDIT: gz + - MongoDB-AUDIT: gz + - MongoDB-SlowLog: ap-guangzhou + - MongoDB-ErrorLog: ap-guangzhou + - TDMYSQL-SLOW: gz + - DCDB(all log type): gz + - MariaDB(all log type): gz + - PostgreSQL(all log type): gz + - BH(all log type): overseas-polaris(Domestic sites overseas)/fsi-polaris(Domestic sites finance)/general-polaris(Domestic sites)/intl-sg-prod(International sites) + - APIS(all log type): gz. + :param pulumi.Input[str] cls_region: CLS target region. + :param pulumi.Input[str] instance_id: Instance ID. + :param pulumi.Input[str] log_type: Log type, Values: CDS-AUDIT, CDS-RISK, CDB-AUDIT, TDSQL-C-AUDIT, MongoDB-AUDIT, MongoDB-SlowLog, MongoDB-ErrorLog, TDMYSQL-SLOW, DCDB-AUDIT, DCDB-SLOW, DCDB-ERROR, MariaDB-AUDIT, MariaDB-SLOW, MariaDB-ERROR, PostgreSQL-SLOW, PostgreSQL-ERROR, PostgreSQL-AUDIT, BH-FILELOG, BH-COMMANDLOG, APIS-ACCESS. + :param pulumi.Input[str] extend: Log configuration extension information, generally used to store additional log delivery configurations. + :param pulumi.Input[str] logset_name: Log set name, it will be automatically created. + :param pulumi.Input[str] topic_name: The name of the log topic, it will be automatically created. + """ + pulumi.set(__self__, "assumer_name", assumer_name) + pulumi.set(__self__, "cloud_product_region", cloud_product_region) + pulumi.set(__self__, "cls_region", cls_region) + pulumi.set(__self__, "instance_id", instance_id) + pulumi.set(__self__, "log_type", log_type) + if extend is not None: + pulumi.set(__self__, "extend", extend) + if logset_name is not None: + pulumi.set(__self__, "logset_name", logset_name) + if topic_name is not None: + pulumi.set(__self__, "topic_name", topic_name) + + @property + @pulumi.getter(name="assumerName") + def assumer_name(self) -> pulumi.Input[str]: + """ + Cloud product identification, Values: CDS, CWP, CDB, TDSQL-C, MongoDB, TDStore, DCDB, MariaDB, PostgreSQL, BH, APIS. + """ + return pulumi.get(self, "assumer_name") + + @assumer_name.setter + def assumer_name(self, value: pulumi.Input[str]): + pulumi.set(self, "assumer_name", value) + + @property + @pulumi.getter(name="cloudProductRegion") + def cloud_product_region(self) -> pulumi.Input[str]: + """ + Cloud product region. There are differences in the input format of different log types in different regions. Please refer to the following example: + - CDS(all log type): ap-guangzhou + - CDB-AUDIT: gz + - TDSQL-C-AUDIT: gz + - MongoDB-AUDIT: gz + - MongoDB-SlowLog: ap-guangzhou + - MongoDB-ErrorLog: ap-guangzhou + - TDMYSQL-SLOW: gz + - DCDB(all log type): gz + - MariaDB(all log type): gz + - PostgreSQL(all log type): gz + - BH(all log type): overseas-polaris(Domestic sites overseas)/fsi-polaris(Domestic sites finance)/general-polaris(Domestic sites)/intl-sg-prod(International sites) + - APIS(all log type): gz. + """ + return pulumi.get(self, "cloud_product_region") + + @cloud_product_region.setter + def cloud_product_region(self, value: pulumi.Input[str]): + pulumi.set(self, "cloud_product_region", value) + + @property + @pulumi.getter(name="clsRegion") + def cls_region(self) -> pulumi.Input[str]: + """ + CLS target region. + """ + return pulumi.get(self, "cls_region") + + @cls_region.setter + def cls_region(self, value: pulumi.Input[str]): + pulumi.set(self, "cls_region", value) + + @property + @pulumi.getter(name="instanceId") + def instance_id(self) -> pulumi.Input[str]: + """ + Instance ID. + """ + return pulumi.get(self, "instance_id") + + @instance_id.setter + def instance_id(self, value: pulumi.Input[str]): + pulumi.set(self, "instance_id", value) + + @property + @pulumi.getter(name="logType") + def log_type(self) -> pulumi.Input[str]: + """ + Log type, Values: CDS-AUDIT, CDS-RISK, CDB-AUDIT, TDSQL-C-AUDIT, MongoDB-AUDIT, MongoDB-SlowLog, MongoDB-ErrorLog, TDMYSQL-SLOW, DCDB-AUDIT, DCDB-SLOW, DCDB-ERROR, MariaDB-AUDIT, MariaDB-SLOW, MariaDB-ERROR, PostgreSQL-SLOW, PostgreSQL-ERROR, PostgreSQL-AUDIT, BH-FILELOG, BH-COMMANDLOG, APIS-ACCESS. + """ + return pulumi.get(self, "log_type") + + @log_type.setter + def log_type(self, value: pulumi.Input[str]): + pulumi.set(self, "log_type", value) + + @property + @pulumi.getter + def extend(self) -> Optional[pulumi.Input[str]]: + """ + Log configuration extension information, generally used to store additional log delivery configurations. + """ + return pulumi.get(self, "extend") + + @extend.setter + def extend(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "extend", value) + + @property + @pulumi.getter(name="logsetName") + def logset_name(self) -> Optional[pulumi.Input[str]]: + """ + Log set name, it will be automatically created. + """ + return pulumi.get(self, "logset_name") + + @logset_name.setter + def logset_name(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "logset_name", value) + + @property + @pulumi.getter(name="topicName") + def topic_name(self) -> Optional[pulumi.Input[str]]: + """ + The name of the log topic, it will be automatically created. + """ + return pulumi.get(self, "topic_name") + + @topic_name.setter + def topic_name(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "topic_name", value) + + +@pulumi.input_type +class _CloudProductLogTaskState: + def __init__(__self__, *, + assumer_name: Optional[pulumi.Input[str]] = None, + cloud_product_region: Optional[pulumi.Input[str]] = None, + cls_region: Optional[pulumi.Input[str]] = None, + extend: Optional[pulumi.Input[str]] = None, + instance_id: Optional[pulumi.Input[str]] = None, + log_type: Optional[pulumi.Input[str]] = None, + logset_id: Optional[pulumi.Input[str]] = None, + logset_name: Optional[pulumi.Input[str]] = None, + topic_id: Optional[pulumi.Input[str]] = None, + topic_name: Optional[pulumi.Input[str]] = None): + """ + Input properties used for looking up and filtering CloudProductLogTask resources. + :param pulumi.Input[str] assumer_name: Cloud product identification, Values: CDS, CWP, CDB, TDSQL-C, MongoDB, TDStore, DCDB, MariaDB, PostgreSQL, BH, APIS. + :param pulumi.Input[str] cloud_product_region: Cloud product region. There are differences in the input format of different log types in different regions. Please refer to the following example: + - CDS(all log type): ap-guangzhou + - CDB-AUDIT: gz + - TDSQL-C-AUDIT: gz + - MongoDB-AUDIT: gz + - MongoDB-SlowLog: ap-guangzhou + - MongoDB-ErrorLog: ap-guangzhou + - TDMYSQL-SLOW: gz + - DCDB(all log type): gz + - MariaDB(all log type): gz + - PostgreSQL(all log type): gz + - BH(all log type): overseas-polaris(Domestic sites overseas)/fsi-polaris(Domestic sites finance)/general-polaris(Domestic sites)/intl-sg-prod(International sites) + - APIS(all log type): gz. + :param pulumi.Input[str] cls_region: CLS target region. + :param pulumi.Input[str] extend: Log configuration extension information, generally used to store additional log delivery configurations. + :param pulumi.Input[str] instance_id: Instance ID. + :param pulumi.Input[str] log_type: Log type, Values: CDS-AUDIT, CDS-RISK, CDB-AUDIT, TDSQL-C-AUDIT, MongoDB-AUDIT, MongoDB-SlowLog, MongoDB-ErrorLog, TDMYSQL-SLOW, DCDB-AUDIT, DCDB-SLOW, DCDB-ERROR, MariaDB-AUDIT, MariaDB-SLOW, MariaDB-ERROR, PostgreSQL-SLOW, PostgreSQL-ERROR, PostgreSQL-AUDIT, BH-FILELOG, BH-COMMANDLOG, APIS-ACCESS. + :param pulumi.Input[str] logset_id: Log set ID. + :param pulumi.Input[str] logset_name: Log set name, it will be automatically created. + :param pulumi.Input[str] topic_id: Log theme ID. + :param pulumi.Input[str] topic_name: The name of the log topic, it will be automatically created. + """ + if assumer_name is not None: + pulumi.set(__self__, "assumer_name", assumer_name) + if cloud_product_region is not None: + pulumi.set(__self__, "cloud_product_region", cloud_product_region) + if cls_region is not None: + pulumi.set(__self__, "cls_region", cls_region) + if extend is not None: + pulumi.set(__self__, "extend", extend) + if instance_id is not None: + pulumi.set(__self__, "instance_id", instance_id) + if log_type is not None: + pulumi.set(__self__, "log_type", log_type) + if logset_id is not None: + pulumi.set(__self__, "logset_id", logset_id) + if logset_name is not None: + pulumi.set(__self__, "logset_name", logset_name) + if topic_id is not None: + pulumi.set(__self__, "topic_id", topic_id) + if topic_name is not None: + pulumi.set(__self__, "topic_name", topic_name) + + @property + @pulumi.getter(name="assumerName") + def assumer_name(self) -> Optional[pulumi.Input[str]]: + """ + Cloud product identification, Values: CDS, CWP, CDB, TDSQL-C, MongoDB, TDStore, DCDB, MariaDB, PostgreSQL, BH, APIS. + """ + return pulumi.get(self, "assumer_name") + + @assumer_name.setter + def assumer_name(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "assumer_name", value) + + @property + @pulumi.getter(name="cloudProductRegion") + def cloud_product_region(self) -> Optional[pulumi.Input[str]]: + """ + Cloud product region. There are differences in the input format of different log types in different regions. Please refer to the following example: + - CDS(all log type): ap-guangzhou + - CDB-AUDIT: gz + - TDSQL-C-AUDIT: gz + - MongoDB-AUDIT: gz + - MongoDB-SlowLog: ap-guangzhou + - MongoDB-ErrorLog: ap-guangzhou + - TDMYSQL-SLOW: gz + - DCDB(all log type): gz + - MariaDB(all log type): gz + - PostgreSQL(all log type): gz + - BH(all log type): overseas-polaris(Domestic sites overseas)/fsi-polaris(Domestic sites finance)/general-polaris(Domestic sites)/intl-sg-prod(International sites) + - APIS(all log type): gz. + """ + return pulumi.get(self, "cloud_product_region") + + @cloud_product_region.setter + def cloud_product_region(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "cloud_product_region", value) + + @property + @pulumi.getter(name="clsRegion") + def cls_region(self) -> Optional[pulumi.Input[str]]: + """ + CLS target region. + """ + return pulumi.get(self, "cls_region") + + @cls_region.setter + def cls_region(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "cls_region", value) + + @property + @pulumi.getter + def extend(self) -> Optional[pulumi.Input[str]]: + """ + Log configuration extension information, generally used to store additional log delivery configurations. + """ + return pulumi.get(self, "extend") + + @extend.setter + def extend(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "extend", value) + + @property + @pulumi.getter(name="instanceId") + def instance_id(self) -> Optional[pulumi.Input[str]]: + """ + Instance ID. + """ + return pulumi.get(self, "instance_id") + + @instance_id.setter + def instance_id(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "instance_id", value) + + @property + @pulumi.getter(name="logType") + def log_type(self) -> Optional[pulumi.Input[str]]: + """ + Log type, Values: CDS-AUDIT, CDS-RISK, CDB-AUDIT, TDSQL-C-AUDIT, MongoDB-AUDIT, MongoDB-SlowLog, MongoDB-ErrorLog, TDMYSQL-SLOW, DCDB-AUDIT, DCDB-SLOW, DCDB-ERROR, MariaDB-AUDIT, MariaDB-SLOW, MariaDB-ERROR, PostgreSQL-SLOW, PostgreSQL-ERROR, PostgreSQL-AUDIT, BH-FILELOG, BH-COMMANDLOG, APIS-ACCESS. + """ + return pulumi.get(self, "log_type") + + @log_type.setter + def log_type(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "log_type", value) + + @property + @pulumi.getter(name="logsetId") + def logset_id(self) -> Optional[pulumi.Input[str]]: + """ + Log set ID. + """ + return pulumi.get(self, "logset_id") + + @logset_id.setter + def logset_id(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "logset_id", value) + + @property + @pulumi.getter(name="logsetName") + def logset_name(self) -> Optional[pulumi.Input[str]]: + """ + Log set name, it will be automatically created. + """ + return pulumi.get(self, "logset_name") + + @logset_name.setter + def logset_name(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "logset_name", value) + + @property + @pulumi.getter(name="topicId") + def topic_id(self) -> Optional[pulumi.Input[str]]: + """ + Log theme ID. + """ + return pulumi.get(self, "topic_id") + + @topic_id.setter + def topic_id(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "topic_id", value) + + @property + @pulumi.getter(name="topicName") + def topic_name(self) -> Optional[pulumi.Input[str]]: + """ + The name of the log topic, it will be automatically created. + """ + return pulumi.get(self, "topic_name") + + @topic_name.setter + def topic_name(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "topic_name", value) + + +class CloudProductLogTask(pulumi.CustomResource): + @overload + def __init__(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + assumer_name: Optional[pulumi.Input[str]] = None, + cloud_product_region: Optional[pulumi.Input[str]] = None, + cls_region: Optional[pulumi.Input[str]] = None, + extend: Optional[pulumi.Input[str]] = None, + instance_id: Optional[pulumi.Input[str]] = None, + log_type: Optional[pulumi.Input[str]] = None, + logset_name: Optional[pulumi.Input[str]] = None, + topic_name: Optional[pulumi.Input[str]] = None, + __props__=None): + """ + Provides a resource to create a cls cloud product log task + + > **NOTE:** Using this resource will create new `logset` and `topic` + + ## Example Usage + + + ```python + import pulumi + import tencentcloud_iac_pulumi as tencentcloud + + example = tencentcloud.cls.CloudProductLogTask("example", + assumer_name="PostgreSQL", + cloud_product_region="gz", + cls_region="ap-guangzhou", + instance_id="postgres-1p7xvpc1", + log_type="PostgreSQL-SLOW", + logset_name="tf-example", + topic_name="tf-example") + ``` + + + ## Import + + cls cloud product log task can be imported using the id, e.g. + + ```sh + $ pulumi import tencentcloud:Cls/cloudProductLogTask:CloudProductLogTask example postgres-1p7xvpc1#PostgreSQL#PostgreSQL-SLOW#gz + ``` + + :param str resource_name: The name of the resource. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[str] assumer_name: Cloud product identification, Values: CDS, CWP, CDB, TDSQL-C, MongoDB, TDStore, DCDB, MariaDB, PostgreSQL, BH, APIS. + :param pulumi.Input[str] cloud_product_region: Cloud product region. There are differences in the input format of different log types in different regions. Please refer to the following example: + - CDS(all log type): ap-guangzhou + - CDB-AUDIT: gz + - TDSQL-C-AUDIT: gz + - MongoDB-AUDIT: gz + - MongoDB-SlowLog: ap-guangzhou + - MongoDB-ErrorLog: ap-guangzhou + - TDMYSQL-SLOW: gz + - DCDB(all log type): gz + - MariaDB(all log type): gz + - PostgreSQL(all log type): gz + - BH(all log type): overseas-polaris(Domestic sites overseas)/fsi-polaris(Domestic sites finance)/general-polaris(Domestic sites)/intl-sg-prod(International sites) + - APIS(all log type): gz. + :param pulumi.Input[str] cls_region: CLS target region. + :param pulumi.Input[str] extend: Log configuration extension information, generally used to store additional log delivery configurations. + :param pulumi.Input[str] instance_id: Instance ID. + :param pulumi.Input[str] log_type: Log type, Values: CDS-AUDIT, CDS-RISK, CDB-AUDIT, TDSQL-C-AUDIT, MongoDB-AUDIT, MongoDB-SlowLog, MongoDB-ErrorLog, TDMYSQL-SLOW, DCDB-AUDIT, DCDB-SLOW, DCDB-ERROR, MariaDB-AUDIT, MariaDB-SLOW, MariaDB-ERROR, PostgreSQL-SLOW, PostgreSQL-ERROR, PostgreSQL-AUDIT, BH-FILELOG, BH-COMMANDLOG, APIS-ACCESS. + :param pulumi.Input[str] logset_name: Log set name, it will be automatically created. + :param pulumi.Input[str] topic_name: The name of the log topic, it will be automatically created. + """ + ... + @overload + def __init__(__self__, + resource_name: str, + args: CloudProductLogTaskArgs, + opts: Optional[pulumi.ResourceOptions] = None): + """ + Provides a resource to create a cls cloud product log task + + > **NOTE:** Using this resource will create new `logset` and `topic` + + ## Example Usage + + + ```python + import pulumi + import tencentcloud_iac_pulumi as tencentcloud + + example = tencentcloud.cls.CloudProductLogTask("example", + assumer_name="PostgreSQL", + cloud_product_region="gz", + cls_region="ap-guangzhou", + instance_id="postgres-1p7xvpc1", + log_type="PostgreSQL-SLOW", + logset_name="tf-example", + topic_name="tf-example") + ``` + + + ## Import + + cls cloud product log task can be imported using the id, e.g. + + ```sh + $ pulumi import tencentcloud:Cls/cloudProductLogTask:CloudProductLogTask example postgres-1p7xvpc1#PostgreSQL#PostgreSQL-SLOW#gz + ``` + + :param str resource_name: The name of the resource. + :param CloudProductLogTaskArgs args: The arguments to use to populate this resource's properties. + :param pulumi.ResourceOptions opts: Options for the resource. + """ + ... + def __init__(__self__, resource_name: str, *args, **kwargs): + resource_args, opts = _utilities.get_resource_args_opts(CloudProductLogTaskArgs, pulumi.ResourceOptions, *args, **kwargs) + if resource_args is not None: + __self__._internal_init(resource_name, opts, **resource_args.__dict__) + else: + __self__._internal_init(resource_name, *args, **kwargs) + + def _internal_init(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + assumer_name: Optional[pulumi.Input[str]] = None, + cloud_product_region: Optional[pulumi.Input[str]] = None, + cls_region: Optional[pulumi.Input[str]] = None, + extend: Optional[pulumi.Input[str]] = None, + instance_id: Optional[pulumi.Input[str]] = None, + log_type: Optional[pulumi.Input[str]] = None, + logset_name: Optional[pulumi.Input[str]] = None, + topic_name: Optional[pulumi.Input[str]] = None, + __props__=None): + opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts) + if not isinstance(opts, pulumi.ResourceOptions): + raise TypeError('Expected resource options to be a ResourceOptions instance') + if opts.id is None: + if __props__ is not None: + raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') + __props__ = CloudProductLogTaskArgs.__new__(CloudProductLogTaskArgs) + + if assumer_name is None and not opts.urn: + raise TypeError("Missing required property 'assumer_name'") + __props__.__dict__["assumer_name"] = assumer_name + if cloud_product_region is None and not opts.urn: + raise TypeError("Missing required property 'cloud_product_region'") + __props__.__dict__["cloud_product_region"] = cloud_product_region + if cls_region is None and not opts.urn: + raise TypeError("Missing required property 'cls_region'") + __props__.__dict__["cls_region"] = cls_region + __props__.__dict__["extend"] = extend + if instance_id is None and not opts.urn: + raise TypeError("Missing required property 'instance_id'") + __props__.__dict__["instance_id"] = instance_id + if log_type is None and not opts.urn: + raise TypeError("Missing required property 'log_type'") + __props__.__dict__["log_type"] = log_type + __props__.__dict__["logset_name"] = logset_name + __props__.__dict__["topic_name"] = topic_name + __props__.__dict__["logset_id"] = None + __props__.__dict__["topic_id"] = None + super(CloudProductLogTask, __self__).__init__( + 'tencentcloud:Cls/cloudProductLogTask:CloudProductLogTask', + resource_name, + __props__, + opts) + + @staticmethod + def get(resource_name: str, + id: pulumi.Input[str], + opts: Optional[pulumi.ResourceOptions] = None, + assumer_name: Optional[pulumi.Input[str]] = None, + cloud_product_region: Optional[pulumi.Input[str]] = None, + cls_region: Optional[pulumi.Input[str]] = None, + extend: Optional[pulumi.Input[str]] = None, + instance_id: Optional[pulumi.Input[str]] = None, + log_type: Optional[pulumi.Input[str]] = None, + logset_id: Optional[pulumi.Input[str]] = None, + logset_name: Optional[pulumi.Input[str]] = None, + topic_id: Optional[pulumi.Input[str]] = None, + topic_name: Optional[pulumi.Input[str]] = None) -> 'CloudProductLogTask': + """ + Get an existing CloudProductLogTask resource's state with the given name, id, and optional extra + properties used to qualify the lookup. + + :param str resource_name: The unique name of the resulting resource. + :param pulumi.Input[str] id: The unique provider ID of the resource to lookup. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[str] assumer_name: Cloud product identification, Values: CDS, CWP, CDB, TDSQL-C, MongoDB, TDStore, DCDB, MariaDB, PostgreSQL, BH, APIS. + :param pulumi.Input[str] cloud_product_region: Cloud product region. There are differences in the input format of different log types in different regions. Please refer to the following example: + - CDS(all log type): ap-guangzhou + - CDB-AUDIT: gz + - TDSQL-C-AUDIT: gz + - MongoDB-AUDIT: gz + - MongoDB-SlowLog: ap-guangzhou + - MongoDB-ErrorLog: ap-guangzhou + - TDMYSQL-SLOW: gz + - DCDB(all log type): gz + - MariaDB(all log type): gz + - PostgreSQL(all log type): gz + - BH(all log type): overseas-polaris(Domestic sites overseas)/fsi-polaris(Domestic sites finance)/general-polaris(Domestic sites)/intl-sg-prod(International sites) + - APIS(all log type): gz. + :param pulumi.Input[str] cls_region: CLS target region. + :param pulumi.Input[str] extend: Log configuration extension information, generally used to store additional log delivery configurations. + :param pulumi.Input[str] instance_id: Instance ID. + :param pulumi.Input[str] log_type: Log type, Values: CDS-AUDIT, CDS-RISK, CDB-AUDIT, TDSQL-C-AUDIT, MongoDB-AUDIT, MongoDB-SlowLog, MongoDB-ErrorLog, TDMYSQL-SLOW, DCDB-AUDIT, DCDB-SLOW, DCDB-ERROR, MariaDB-AUDIT, MariaDB-SLOW, MariaDB-ERROR, PostgreSQL-SLOW, PostgreSQL-ERROR, PostgreSQL-AUDIT, BH-FILELOG, BH-COMMANDLOG, APIS-ACCESS. + :param pulumi.Input[str] logset_id: Log set ID. + :param pulumi.Input[str] logset_name: Log set name, it will be automatically created. + :param pulumi.Input[str] topic_id: Log theme ID. + :param pulumi.Input[str] topic_name: The name of the log topic, it will be automatically created. + """ + opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id)) + + __props__ = _CloudProductLogTaskState.__new__(_CloudProductLogTaskState) + + __props__.__dict__["assumer_name"] = assumer_name + __props__.__dict__["cloud_product_region"] = cloud_product_region + __props__.__dict__["cls_region"] = cls_region + __props__.__dict__["extend"] = extend + __props__.__dict__["instance_id"] = instance_id + __props__.__dict__["log_type"] = log_type + __props__.__dict__["logset_id"] = logset_id + __props__.__dict__["logset_name"] = logset_name + __props__.__dict__["topic_id"] = topic_id + __props__.__dict__["topic_name"] = topic_name + return CloudProductLogTask(resource_name, opts=opts, __props__=__props__) + + @property + @pulumi.getter(name="assumerName") + def assumer_name(self) -> pulumi.Output[str]: + """ + Cloud product identification, Values: CDS, CWP, CDB, TDSQL-C, MongoDB, TDStore, DCDB, MariaDB, PostgreSQL, BH, APIS. + """ + return pulumi.get(self, "assumer_name") + + @property + @pulumi.getter(name="cloudProductRegion") + def cloud_product_region(self) -> pulumi.Output[str]: + """ + Cloud product region. There are differences in the input format of different log types in different regions. Please refer to the following example: + - CDS(all log type): ap-guangzhou + - CDB-AUDIT: gz + - TDSQL-C-AUDIT: gz + - MongoDB-AUDIT: gz + - MongoDB-SlowLog: ap-guangzhou + - MongoDB-ErrorLog: ap-guangzhou + - TDMYSQL-SLOW: gz + - DCDB(all log type): gz + - MariaDB(all log type): gz + - PostgreSQL(all log type): gz + - BH(all log type): overseas-polaris(Domestic sites overseas)/fsi-polaris(Domestic sites finance)/general-polaris(Domestic sites)/intl-sg-prod(International sites) + - APIS(all log type): gz. + """ + return pulumi.get(self, "cloud_product_region") + + @property + @pulumi.getter(name="clsRegion") + def cls_region(self) -> pulumi.Output[str]: + """ + CLS target region. + """ + return pulumi.get(self, "cls_region") + + @property + @pulumi.getter + def extend(self) -> pulumi.Output[Optional[str]]: + """ + Log configuration extension information, generally used to store additional log delivery configurations. + """ + return pulumi.get(self, "extend") + + @property + @pulumi.getter(name="instanceId") + def instance_id(self) -> pulumi.Output[str]: + """ + Instance ID. + """ + return pulumi.get(self, "instance_id") + + @property + @pulumi.getter(name="logType") + def log_type(self) -> pulumi.Output[str]: + """ + Log type, Values: CDS-AUDIT, CDS-RISK, CDB-AUDIT, TDSQL-C-AUDIT, MongoDB-AUDIT, MongoDB-SlowLog, MongoDB-ErrorLog, TDMYSQL-SLOW, DCDB-AUDIT, DCDB-SLOW, DCDB-ERROR, MariaDB-AUDIT, MariaDB-SLOW, MariaDB-ERROR, PostgreSQL-SLOW, PostgreSQL-ERROR, PostgreSQL-AUDIT, BH-FILELOG, BH-COMMANDLOG, APIS-ACCESS. + """ + return pulumi.get(self, "log_type") + + @property + @pulumi.getter(name="logsetId") + def logset_id(self) -> pulumi.Output[str]: + """ + Log set ID. + """ + return pulumi.get(self, "logset_id") + + @property + @pulumi.getter(name="logsetName") + def logset_name(self) -> pulumi.Output[Optional[str]]: + """ + Log set name, it will be automatically created. + """ + return pulumi.get(self, "logset_name") + + @property + @pulumi.getter(name="topicId") + def topic_id(self) -> pulumi.Output[str]: + """ + Log theme ID. + """ + return pulumi.get(self, "topic_id") + + @property + @pulumi.getter(name="topicName") + def topic_name(self) -> pulumi.Output[Optional[str]]: + """ + The name of the log topic, it will be automatically created. + """ + return pulumi.get(self, "topic_name") + diff --git a/sdk/python/tencentcloud_iac_pulumi/cls/notice_content.py b/sdk/python/tencentcloud_iac_pulumi/cls/notice_content.py new file mode 100644 index 000000000..9df83c296 --- /dev/null +++ b/sdk/python/tencentcloud_iac_pulumi/cls/notice_content.py @@ -0,0 +1,307 @@ +# coding=utf-8 +# *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +# *** Do not edit by hand unless you're certain you know what you are doing! *** + +import copy +import warnings +import pulumi +import pulumi.runtime +from typing import Any, Mapping, Optional, Sequence, Union, overload +from .. import _utilities +from . import outputs +from ._inputs import * + +__all__ = ['NoticeContentArgs', 'NoticeContent'] + +@pulumi.input_type +class NoticeContentArgs: + def __init__(__self__, *, + name: Optional[pulumi.Input[str]] = None, + notice_contents: Optional[pulumi.Input['NoticeContentNoticeContentsArgs']] = None, + type: Optional[pulumi.Input[int]] = None): + """ + The set of arguments for constructing a NoticeContent resource. + :param pulumi.Input[str] name: Notice content name. + :param pulumi.Input['NoticeContentNoticeContentsArgs'] notice_contents: Template detailed configuration. + :param pulumi.Input[int] type: Template content language. 0: Chinese 1: English. + """ + if name is not None: + pulumi.set(__self__, "name", name) + if notice_contents is not None: + pulumi.set(__self__, "notice_contents", notice_contents) + if type is not None: + pulumi.set(__self__, "type", type) + + @property + @pulumi.getter + def name(self) -> Optional[pulumi.Input[str]]: + """ + Notice content name. + """ + return pulumi.get(self, "name") + + @name.setter + def name(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "name", value) + + @property + @pulumi.getter(name="noticeContents") + def notice_contents(self) -> Optional[pulumi.Input['NoticeContentNoticeContentsArgs']]: + """ + Template detailed configuration. + """ + return pulumi.get(self, "notice_contents") + + @notice_contents.setter + def notice_contents(self, value: Optional[pulumi.Input['NoticeContentNoticeContentsArgs']]): + pulumi.set(self, "notice_contents", value) + + @property + @pulumi.getter + def type(self) -> Optional[pulumi.Input[int]]: + """ + Template content language. 0: Chinese 1: English. + """ + return pulumi.get(self, "type") + + @type.setter + def type(self, value: Optional[pulumi.Input[int]]): + pulumi.set(self, "type", value) + + +@pulumi.input_type +class _NoticeContentState: + def __init__(__self__, *, + name: Optional[pulumi.Input[str]] = None, + notice_contents: Optional[pulumi.Input['NoticeContentNoticeContentsArgs']] = None, + type: Optional[pulumi.Input[int]] = None): + """ + Input properties used for looking up and filtering NoticeContent resources. + :param pulumi.Input[str] name: Notice content name. + :param pulumi.Input['NoticeContentNoticeContentsArgs'] notice_contents: Template detailed configuration. + :param pulumi.Input[int] type: Template content language. 0: Chinese 1: English. + """ + if name is not None: + pulumi.set(__self__, "name", name) + if notice_contents is not None: + pulumi.set(__self__, "notice_contents", notice_contents) + if type is not None: + pulumi.set(__self__, "type", type) + + @property + @pulumi.getter + def name(self) -> Optional[pulumi.Input[str]]: + """ + Notice content name. + """ + return pulumi.get(self, "name") + + @name.setter + def name(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "name", value) + + @property + @pulumi.getter(name="noticeContents") + def notice_contents(self) -> Optional[pulumi.Input['NoticeContentNoticeContentsArgs']]: + """ + Template detailed configuration. + """ + return pulumi.get(self, "notice_contents") + + @notice_contents.setter + def notice_contents(self, value: Optional[pulumi.Input['NoticeContentNoticeContentsArgs']]): + pulumi.set(self, "notice_contents", value) + + @property + @pulumi.getter + def type(self) -> Optional[pulumi.Input[int]]: + """ + Template content language. 0: Chinese 1: English. + """ + return pulumi.get(self, "type") + + @type.setter + def type(self, value: Optional[pulumi.Input[int]]): + pulumi.set(self, "type", value) + + +class NoticeContent(pulumi.CustomResource): + @overload + def __init__(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + name: Optional[pulumi.Input[str]] = None, + notice_contents: Optional[pulumi.Input[pulumi.InputType['NoticeContentNoticeContentsArgs']]] = None, + type: Optional[pulumi.Input[int]] = None, + __props__=None): + """ + Provides a resource to create a cls notice content + + ## Example Usage + + + ```python + import pulumi + import tencentcloud_iac_pulumi as tencentcloud + + example = tencentcloud.cls.NoticeContent("example", + notice_contents=tencentcloud.cls.NoticeContentNoticeContentsArgs( + recovery_content=tencentcloud.cls.NoticeContentNoticeContentsRecoveryContentArgs( + content="This is content.", + headers=["Content-Type:application/json"], + title="title", + ), + trigger_content=tencentcloud.cls.NoticeContentNoticeContentsTriggerContentArgs( + content="This is content.", + headers=["Content-Type:application/json"], + title="title", + ), + type="Email", + ), + type=0) + ``` + + + ## Import + + cls notice content can be imported using the id, e.g. + + ```sh + $ pulumi import tencentcloud:Cls/noticeContent:NoticeContent example noticetemplate-b417f32a-bdf9-46c5-933e-28c23cd7a6b7 + ``` + + :param str resource_name: The name of the resource. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[str] name: Notice content name. + :param pulumi.Input[pulumi.InputType['NoticeContentNoticeContentsArgs']] notice_contents: Template detailed configuration. + :param pulumi.Input[int] type: Template content language. 0: Chinese 1: English. + """ + ... + @overload + def __init__(__self__, + resource_name: str, + args: Optional[NoticeContentArgs] = None, + opts: Optional[pulumi.ResourceOptions] = None): + """ + Provides a resource to create a cls notice content + + ## Example Usage + + + ```python + import pulumi + import tencentcloud_iac_pulumi as tencentcloud + + example = tencentcloud.cls.NoticeContent("example", + notice_contents=tencentcloud.cls.NoticeContentNoticeContentsArgs( + recovery_content=tencentcloud.cls.NoticeContentNoticeContentsRecoveryContentArgs( + content="This is content.", + headers=["Content-Type:application/json"], + title="title", + ), + trigger_content=tencentcloud.cls.NoticeContentNoticeContentsTriggerContentArgs( + content="This is content.", + headers=["Content-Type:application/json"], + title="title", + ), + type="Email", + ), + type=0) + ``` + + + ## Import + + cls notice content can be imported using the id, e.g. + + ```sh + $ pulumi import tencentcloud:Cls/noticeContent:NoticeContent example noticetemplate-b417f32a-bdf9-46c5-933e-28c23cd7a6b7 + ``` + + :param str resource_name: The name of the resource. + :param NoticeContentArgs args: The arguments to use to populate this resource's properties. + :param pulumi.ResourceOptions opts: Options for the resource. + """ + ... + def __init__(__self__, resource_name: str, *args, **kwargs): + resource_args, opts = _utilities.get_resource_args_opts(NoticeContentArgs, pulumi.ResourceOptions, *args, **kwargs) + if resource_args is not None: + __self__._internal_init(resource_name, opts, **resource_args.__dict__) + else: + __self__._internal_init(resource_name, *args, **kwargs) + + def _internal_init(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + name: Optional[pulumi.Input[str]] = None, + notice_contents: Optional[pulumi.Input[pulumi.InputType['NoticeContentNoticeContentsArgs']]] = None, + type: Optional[pulumi.Input[int]] = None, + __props__=None): + opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts) + if not isinstance(opts, pulumi.ResourceOptions): + raise TypeError('Expected resource options to be a ResourceOptions instance') + if opts.id is None: + if __props__ is not None: + raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') + __props__ = NoticeContentArgs.__new__(NoticeContentArgs) + + __props__.__dict__["name"] = name + __props__.__dict__["notice_contents"] = notice_contents + __props__.__dict__["type"] = type + super(NoticeContent, __self__).__init__( + 'tencentcloud:Cls/noticeContent:NoticeContent', + resource_name, + __props__, + opts) + + @staticmethod + def get(resource_name: str, + id: pulumi.Input[str], + opts: Optional[pulumi.ResourceOptions] = None, + name: Optional[pulumi.Input[str]] = None, + notice_contents: Optional[pulumi.Input[pulumi.InputType['NoticeContentNoticeContentsArgs']]] = None, + type: Optional[pulumi.Input[int]] = None) -> 'NoticeContent': + """ + Get an existing NoticeContent resource's state with the given name, id, and optional extra + properties used to qualify the lookup. + + :param str resource_name: The unique name of the resulting resource. + :param pulumi.Input[str] id: The unique provider ID of the resource to lookup. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[str] name: Notice content name. + :param pulumi.Input[pulumi.InputType['NoticeContentNoticeContentsArgs']] notice_contents: Template detailed configuration. + :param pulumi.Input[int] type: Template content language. 0: Chinese 1: English. + """ + opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id)) + + __props__ = _NoticeContentState.__new__(_NoticeContentState) + + __props__.__dict__["name"] = name + __props__.__dict__["notice_contents"] = notice_contents + __props__.__dict__["type"] = type + return NoticeContent(resource_name, opts=opts, __props__=__props__) + + @property + @pulumi.getter + def name(self) -> pulumi.Output[str]: + """ + Notice content name. + """ + return pulumi.get(self, "name") + + @property + @pulumi.getter(name="noticeContents") + def notice_contents(self) -> pulumi.Output[Optional['outputs.NoticeContentNoticeContents']]: + """ + Template detailed configuration. + """ + return pulumi.get(self, "notice_contents") + + @property + @pulumi.getter + def type(self) -> pulumi.Output[Optional[int]]: + """ + Template content language. 0: Chinese 1: English. + """ + return pulumi.get(self, "type") + diff --git a/sdk/python/tencentcloud_iac_pulumi/cls/outputs.py b/sdk/python/tencentcloud_iac_pulumi/cls/outputs.py index 8b2f703f1..18c0fe738 100644 --- a/sdk/python/tencentcloud_iac_pulumi/cls/outputs.py +++ b/sdk/python/tencentcloud_iac_pulumi/cls/outputs.py @@ -53,6 +53,9 @@ 'KafkaRechargeLogRechargeRule', 'KafkaRechargeProtocol', 'MachineGroupMachineGroupType', + 'NoticeContentNoticeContents', + 'NoticeContentNoticeContentsRecoveryContent', + 'NoticeContentNoticeContentsTriggerContent', 'ScheduledSqlDstResource', 'TopicExtends', 'TopicExtendsAnonymousAccess', @@ -3043,6 +3046,153 @@ def values(self) -> Sequence[str]: return pulumi.get(self, "values") +@pulumi.output_type +class NoticeContentNoticeContents(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "recoveryContent": + suggest = "recovery_content" + elif key == "triggerContent": + suggest = "trigger_content" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in NoticeContentNoticeContents. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + NoticeContentNoticeContents.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + NoticeContentNoticeContents.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + type: str, + recovery_content: Optional['outputs.NoticeContentNoticeContentsRecoveryContent'] = None, + trigger_content: Optional['outputs.NoticeContentNoticeContentsTriggerContent'] = None): + """ + :param str type: Channel type. Email: Email; Sms: SMS; WeChat: WeChat; Phone: Telephone; WeCom: Enterprise WeChat; DingTalk: DingTalk; Lark: Feishu; HTTP: Custom callback. + :param 'NoticeContentNoticeContentsRecoveryContentArgs' recovery_content: Template for Alarm Recovery Notification Content. + :param 'NoticeContentNoticeContentsTriggerContentArgs' trigger_content: Alarm triggered notification content template. + """ + pulumi.set(__self__, "type", type) + if recovery_content is not None: + pulumi.set(__self__, "recovery_content", recovery_content) + if trigger_content is not None: + pulumi.set(__self__, "trigger_content", trigger_content) + + @property + @pulumi.getter + def type(self) -> str: + """ + Channel type. Email: Email; Sms: SMS; WeChat: WeChat; Phone: Telephone; WeCom: Enterprise WeChat; DingTalk: DingTalk; Lark: Feishu; HTTP: Custom callback. + """ + return pulumi.get(self, "type") + + @property + @pulumi.getter(name="recoveryContent") + def recovery_content(self) -> Optional['outputs.NoticeContentNoticeContentsRecoveryContent']: + """ + Template for Alarm Recovery Notification Content. + """ + return pulumi.get(self, "recovery_content") + + @property + @pulumi.getter(name="triggerContent") + def trigger_content(self) -> Optional['outputs.NoticeContentNoticeContentsTriggerContent']: + """ + Alarm triggered notification content template. + """ + return pulumi.get(self, "trigger_content") + + +@pulumi.output_type +class NoticeContentNoticeContentsRecoveryContent(dict): + def __init__(__self__, *, + content: Optional[str] = None, + headers: Optional[Sequence[str]] = None, + title: Optional[str] = None): + """ + :param str content: Notification content template body information. + :param Sequence[str] headers: Request headers: In HTTP requests, request headers contain additional information sent by the client to the server, such as user agent, authorization credentials, expected response format, etc. Only `custom callback` supports this configuration. + :param str title: Notification content template title information. Some notification channel types do not support 'title', please refer to the Tencent Cloud Console page. + """ + if content is not None: + pulumi.set(__self__, "content", content) + if headers is not None: + pulumi.set(__self__, "headers", headers) + if title is not None: + pulumi.set(__self__, "title", title) + + @property + @pulumi.getter + def content(self) -> Optional[str]: + """ + Notification content template body information. + """ + return pulumi.get(self, "content") + + @property + @pulumi.getter + def headers(self) -> Optional[Sequence[str]]: + """ + Request headers: In HTTP requests, request headers contain additional information sent by the client to the server, such as user agent, authorization credentials, expected response format, etc. Only `custom callback` supports this configuration. + """ + return pulumi.get(self, "headers") + + @property + @pulumi.getter + def title(self) -> Optional[str]: + """ + Notification content template title information. Some notification channel types do not support 'title', please refer to the Tencent Cloud Console page. + """ + return pulumi.get(self, "title") + + +@pulumi.output_type +class NoticeContentNoticeContentsTriggerContent(dict): + def __init__(__self__, *, + content: Optional[str] = None, + headers: Optional[Sequence[str]] = None, + title: Optional[str] = None): + """ + :param str content: Notification content template body information. + :param Sequence[str] headers: Request headers: In HTTP requests, request headers contain additional information sent by the client to the server, such as user agent, authorization credentials, expected response format, etc. Only `custom callback` supports this configuration. + :param str title: Notification content template title information. Some notification channel types do not support 'title', please refer to the Tencent Cloud Console page. + """ + if content is not None: + pulumi.set(__self__, "content", content) + if headers is not None: + pulumi.set(__self__, "headers", headers) + if title is not None: + pulumi.set(__self__, "title", title) + + @property + @pulumi.getter + def content(self) -> Optional[str]: + """ + Notification content template body information. + """ + return pulumi.get(self, "content") + + @property + @pulumi.getter + def headers(self) -> Optional[Sequence[str]]: + """ + Request headers: In HTTP requests, request headers contain additional information sent by the client to the server, such as user agent, authorization credentials, expected response format, etc. Only `custom callback` supports this configuration. + """ + return pulumi.get(self, "headers") + + @property + @pulumi.getter + def title(self) -> Optional[str]: + """ + Notification content template title information. Some notification channel types do not support 'title', please refer to the Tencent Cloud Console page. + """ + return pulumi.get(self, "title") + + @pulumi.output_type class ScheduledSqlDstResource(dict): @staticmethod diff --git a/sdk/python/tencentcloud_iac_pulumi/kubernetes/node_pool.py b/sdk/python/tencentcloud_iac_pulumi/kubernetes/node_pool.py index 2a779c74b..58276bee5 100644 --- a/sdk/python/tencentcloud_iac_pulumi/kubernetes/node_pool.py +++ b/sdk/python/tencentcloud_iac_pulumi/kubernetes/node_pool.py @@ -34,6 +34,7 @@ def __init__(__self__, *, node_os: Optional[pulumi.Input[str]] = None, node_os_type: Optional[pulumi.Input[str]] = None, retry_policy: Optional[pulumi.Input[str]] = None, + scale_tolerance: Optional[pulumi.Input[int]] = None, scaling_group_name: Optional[pulumi.Input[str]] = None, scaling_group_project_id: Optional[pulumi.Input[int]] = None, scaling_mode: Optional[pulumi.Input[str]] = None, @@ -42,6 +43,7 @@ def __init__(__self__, *, taints: Optional[pulumi.Input[Sequence[pulumi.Input['NodePoolTaintArgs']]]] = None, termination_policies: Optional[pulumi.Input[str]] = None, unschedulable: Optional[pulumi.Input[int]] = None, + wait_node_ready: Optional[pulumi.Input[bool]] = None, zones: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None): """ The set of arguments for constructing a NodePool resource. @@ -63,6 +65,7 @@ def __init__(__self__, *, :param pulumi.Input[str] node_os: Operating system of the cluster. Please refer to [TencentCloud Documentation](https://www.tencentcloud.com/document/product/457/46750?lang=en&pg=#list-of-public-images-supported-by-tke) for available values. Default is 'tlinux2.4x86_64'. This parameter will only affect new nodes, not including the existing nodes. :param pulumi.Input[str] node_os_type: The image version of the node. Valida values are `DOCKER_CUSTOMIZE` and `GENERAL`. Default is `GENERAL`. This parameter will only affect new nodes, not including the existing nodes. :param pulumi.Input[str] retry_policy: Available values for retry policies include `IMMEDIATE_RETRY` and `INCREMENTAL_INTERVALS`. + :param pulumi.Input[int] scale_tolerance: Control how many expectations(`desired_capacity`) can be tolerated successfully. Unit is percentage, Default is `100`. Only can be set if `wait_node_ready` is `true`. :param pulumi.Input[str] scaling_group_name: Name of relative scaling group. :param pulumi.Input[int] scaling_group_project_id: Project ID the scaling group belongs to. :param pulumi.Input[str] scaling_mode: Auto scaling mode. Valid values are `CLASSIC_SCALING`(scaling by create/destroy instances), `WAKE_UP_STOPPED_SCALING`(Boot priority for expansion. When expanding the capacity, the shutdown operation is given priority to the shutdown of the instance. If the number of instances is still lower than the expected number of instances after the startup, the instance will be created, and the method of destroying the instance will still be used for shrinking). @@ -71,6 +74,7 @@ def __init__(__self__, *, :param pulumi.Input[Sequence[pulumi.Input['NodePoolTaintArgs']]] taints: Taints of kubernetes node pool created nodes. :param pulumi.Input[str] termination_policies: Policy of scaling group termination. Available values: `["OLDEST_INSTANCE"]`, `["NEWEST_INSTANCE"]`. :param pulumi.Input[int] unschedulable: Sets whether the joining node participates in the schedule. Default is '0'. Participate in scheduling. + :param pulumi.Input[bool] wait_node_ready: Whether to wait for all expansion resources to be ready. Default is false. Only can be set if `enable_auto_scale` is `false`. :param pulumi.Input[Sequence[pulumi.Input[str]]] zones: List of auto scaling group available zones, for Basic network it is required. """ pulumi.set(__self__, "auto_scaling_config", auto_scaling_config) @@ -104,6 +108,8 @@ def __init__(__self__, *, pulumi.set(__self__, "node_os_type", node_os_type) if retry_policy is not None: pulumi.set(__self__, "retry_policy", retry_policy) + if scale_tolerance is not None: + pulumi.set(__self__, "scale_tolerance", scale_tolerance) if scaling_group_name is not None: pulumi.set(__self__, "scaling_group_name", scaling_group_name) if scaling_group_project_id is not None: @@ -120,6 +126,8 @@ def __init__(__self__, *, pulumi.set(__self__, "termination_policies", termination_policies) if unschedulable is not None: pulumi.set(__self__, "unschedulable", unschedulable) + if wait_node_ready is not None: + pulumi.set(__self__, "wait_node_ready", wait_node_ready) if zones is not None: pulumi.set(__self__, "zones", zones) @@ -339,6 +347,18 @@ def retry_policy(self) -> Optional[pulumi.Input[str]]: def retry_policy(self, value: Optional[pulumi.Input[str]]): pulumi.set(self, "retry_policy", value) + @property + @pulumi.getter(name="scaleTolerance") + def scale_tolerance(self) -> Optional[pulumi.Input[int]]: + """ + Control how many expectations(`desired_capacity`) can be tolerated successfully. Unit is percentage, Default is `100`. Only can be set if `wait_node_ready` is `true`. + """ + return pulumi.get(self, "scale_tolerance") + + @scale_tolerance.setter + def scale_tolerance(self, value: Optional[pulumi.Input[int]]): + pulumi.set(self, "scale_tolerance", value) + @property @pulumi.getter(name="scalingGroupName") def scaling_group_name(self) -> Optional[pulumi.Input[str]]: @@ -435,6 +455,18 @@ def unschedulable(self) -> Optional[pulumi.Input[int]]: def unschedulable(self, value: Optional[pulumi.Input[int]]): pulumi.set(self, "unschedulable", value) + @property + @pulumi.getter(name="waitNodeReady") + def wait_node_ready(self) -> Optional[pulumi.Input[bool]]: + """ + Whether to wait for all expansion resources to be ready. Default is false. Only can be set if `enable_auto_scale` is `false`. + """ + return pulumi.get(self, "wait_node_ready") + + @wait_node_ready.setter + def wait_node_ready(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "wait_node_ready", value) + @property @pulumi.getter def zones(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: @@ -473,6 +505,7 @@ def __init__(__self__, *, node_os: Optional[pulumi.Input[str]] = None, node_os_type: Optional[pulumi.Input[str]] = None, retry_policy: Optional[pulumi.Input[str]] = None, + scale_tolerance: Optional[pulumi.Input[int]] = None, scaling_group_name: Optional[pulumi.Input[str]] = None, scaling_group_project_id: Optional[pulumi.Input[int]] = None, scaling_mode: Optional[pulumi.Input[str]] = None, @@ -483,6 +516,7 @@ def __init__(__self__, *, termination_policies: Optional[pulumi.Input[str]] = None, unschedulable: Optional[pulumi.Input[int]] = None, vpc_id: Optional[pulumi.Input[str]] = None, + wait_node_ready: Optional[pulumi.Input[bool]] = None, zones: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None): """ Input properties used for looking up and filtering NodePool resources. @@ -508,6 +542,7 @@ def __init__(__self__, *, :param pulumi.Input[str] node_os: Operating system of the cluster. Please refer to [TencentCloud Documentation](https://www.tencentcloud.com/document/product/457/46750?lang=en&pg=#list-of-public-images-supported-by-tke) for available values. Default is 'tlinux2.4x86_64'. This parameter will only affect new nodes, not including the existing nodes. :param pulumi.Input[str] node_os_type: The image version of the node. Valida values are `DOCKER_CUSTOMIZE` and `GENERAL`. Default is `GENERAL`. This parameter will only affect new nodes, not including the existing nodes. :param pulumi.Input[str] retry_policy: Available values for retry policies include `IMMEDIATE_RETRY` and `INCREMENTAL_INTERVALS`. + :param pulumi.Input[int] scale_tolerance: Control how many expectations(`desired_capacity`) can be tolerated successfully. Unit is percentage, Default is `100`. Only can be set if `wait_node_ready` is `true`. :param pulumi.Input[str] scaling_group_name: Name of relative scaling group. :param pulumi.Input[int] scaling_group_project_id: Project ID the scaling group belongs to. :param pulumi.Input[str] scaling_mode: Auto scaling mode. Valid values are `CLASSIC_SCALING`(scaling by create/destroy instances), `WAKE_UP_STOPPED_SCALING`(Boot priority for expansion. When expanding the capacity, the shutdown operation is given priority to the shutdown of the instance. If the number of instances is still lower than the expected number of instances after the startup, the instance will be created, and the method of destroying the instance will still be used for shrinking). @@ -518,6 +553,7 @@ def __init__(__self__, *, :param pulumi.Input[str] termination_policies: Policy of scaling group termination. Available values: `["OLDEST_INSTANCE"]`, `["NEWEST_INSTANCE"]`. :param pulumi.Input[int] unschedulable: Sets whether the joining node participates in the schedule. Default is '0'. Participate in scheduling. :param pulumi.Input[str] vpc_id: ID of VPC network. + :param pulumi.Input[bool] wait_node_ready: Whether to wait for all expansion resources to be ready. Default is false. Only can be set if `enable_auto_scale` is `false`. :param pulumi.Input[Sequence[pulumi.Input[str]]] zones: List of auto scaling group available zones, for Basic network it is required. """ if annotations is not None: @@ -564,6 +600,8 @@ def __init__(__self__, *, pulumi.set(__self__, "node_os_type", node_os_type) if retry_policy is not None: pulumi.set(__self__, "retry_policy", retry_policy) + if scale_tolerance is not None: + pulumi.set(__self__, "scale_tolerance", scale_tolerance) if scaling_group_name is not None: pulumi.set(__self__, "scaling_group_name", scaling_group_name) if scaling_group_project_id is not None: @@ -584,6 +622,8 @@ def __init__(__self__, *, pulumi.set(__self__, "unschedulable", unschedulable) if vpc_id is not None: pulumi.set(__self__, "vpc_id", vpc_id) + if wait_node_ready is not None: + pulumi.set(__self__, "wait_node_ready", wait_node_ready) if zones is not None: pulumi.set(__self__, "zones", zones) @@ -851,6 +891,18 @@ def retry_policy(self) -> Optional[pulumi.Input[str]]: def retry_policy(self, value: Optional[pulumi.Input[str]]): pulumi.set(self, "retry_policy", value) + @property + @pulumi.getter(name="scaleTolerance") + def scale_tolerance(self) -> Optional[pulumi.Input[int]]: + """ + Control how many expectations(`desired_capacity`) can be tolerated successfully. Unit is percentage, Default is `100`. Only can be set if `wait_node_ready` is `true`. + """ + return pulumi.get(self, "scale_tolerance") + + @scale_tolerance.setter + def scale_tolerance(self, value: Optional[pulumi.Input[int]]): + pulumi.set(self, "scale_tolerance", value) + @property @pulumi.getter(name="scalingGroupName") def scaling_group_name(self) -> Optional[pulumi.Input[str]]: @@ -971,6 +1023,18 @@ def vpc_id(self) -> Optional[pulumi.Input[str]]: def vpc_id(self, value: Optional[pulumi.Input[str]]): pulumi.set(self, "vpc_id", value) + @property + @pulumi.getter(name="waitNodeReady") + def wait_node_ready(self) -> Optional[pulumi.Input[bool]]: + """ + Whether to wait for all expansion resources to be ready. Default is false. Only can be set if `enable_auto_scale` is `false`. + """ + return pulumi.get(self, "wait_node_ready") + + @wait_node_ready.setter + def wait_node_ready(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "wait_node_ready", value) + @property @pulumi.getter def zones(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: @@ -1006,6 +1070,7 @@ def __init__(__self__, node_os: Optional[pulumi.Input[str]] = None, node_os_type: Optional[pulumi.Input[str]] = None, retry_policy: Optional[pulumi.Input[str]] = None, + scale_tolerance: Optional[pulumi.Input[int]] = None, scaling_group_name: Optional[pulumi.Input[str]] = None, scaling_group_project_id: Optional[pulumi.Input[int]] = None, scaling_mode: Optional[pulumi.Input[str]] = None, @@ -1015,6 +1080,7 @@ def __init__(__self__, termination_policies: Optional[pulumi.Input[str]] = None, unschedulable: Optional[pulumi.Input[int]] = None, vpc_id: Optional[pulumi.Input[str]] = None, + wait_node_ready: Optional[pulumi.Input[bool]] = None, zones: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, __props__=None): """ @@ -1026,6 +1092,8 @@ def __init__(__self__, > **NOTE:** In order to ensure the integrity of customer data, if the cvm instance was destroyed due to shrinking, it will keep the cbs associate with cvm by default. If you want to destroy together, please set `delete_with_instance` to `true`. + > **NOTE:** There are two parameters `wait_node_ready` and `scale_tolerance` to ensure better management of node pool scaling operations. If this parameter is set, when creating resources, if the set criteria are not met, the resources will be marked as `tainted`. + ## Example Usage @@ -1156,6 +1224,67 @@ def __init__(__self__, ``` + + ```python + import pulumi + import tencentcloud_iac_pulumi as tencentcloud + + example = tencentcloud.kubernetes.NodePool("example", + cluster_id=tencentcloud_kubernetes_cluster["managed_cluster"]["id"], + max_size=100, + min_size=1, + vpc_id=data["tencentcloud_vpc_subnets"]["vpc"]["instance_list"][0]["vpc_id"], + subnet_ids=[data["tencentcloud_vpc_subnets"]["vpc"]["instance_list"][0]["subnet_id"]], + retry_policy="INCREMENTAL_INTERVALS", + desired_capacity=50, + enable_auto_scale=False, + wait_node_ready=True, + scale_tolerance=90, + multi_zone_subnet_policy="EQUALITY", + node_os="img-6n21msk1", + delete_keep_instance=False, + auto_scaling_config=tencentcloud.kubernetes.NodePoolAutoScalingConfigArgs( + instance_type=var["default_instance_type"], + system_disk_type="CLOUD_PREMIUM", + system_disk_size=50, + orderly_security_group_ids=["sg-bw28gmso"], + data_disks=[tencentcloud.kubernetes.NodePoolAutoScalingConfigDataDiskArgs( + disk_type="CLOUD_PREMIUM", + disk_size=50, + delete_with_instance=True, + )], + internet_charge_type="TRAFFIC_POSTPAID_BY_HOUR", + internet_max_bandwidth_out=10, + public_ip_assigned=True, + password="test123#", + enhanced_security_service=False, + enhanced_monitor_service=False, + host_name="12.123.0.0", + host_name_style="ORIGINAL", + ), + labels={ + "test1": "test1", + "test2": "test2", + }, + taints=[ + tencentcloud.kubernetes.NodePoolTaintArgs( + key="test_taint", + value="taint_value", + effect="PreferNoSchedule", + ), + tencentcloud.kubernetes.NodePoolTaintArgs( + key="test_taint2", + value="taint_value2", + effect="PreferNoSchedule", + ), + ], + node_config=tencentcloud.kubernetes.NodePoolNodeConfigArgs( + docker_graph_path="/var/lib/docker", + extra_args=["root-dir=/var/lib/kubelet"], + )) + ``` + + ## Import tke node pool can be imported, e.g. @@ -1183,6 +1312,7 @@ def __init__(__self__, :param pulumi.Input[str] node_os: Operating system of the cluster. Please refer to [TencentCloud Documentation](https://www.tencentcloud.com/document/product/457/46750?lang=en&pg=#list-of-public-images-supported-by-tke) for available values. Default is 'tlinux2.4x86_64'. This parameter will only affect new nodes, not including the existing nodes. :param pulumi.Input[str] node_os_type: The image version of the node. Valida values are `DOCKER_CUSTOMIZE` and `GENERAL`. Default is `GENERAL`. This parameter will only affect new nodes, not including the existing nodes. :param pulumi.Input[str] retry_policy: Available values for retry policies include `IMMEDIATE_RETRY` and `INCREMENTAL_INTERVALS`. + :param pulumi.Input[int] scale_tolerance: Control how many expectations(`desired_capacity`) can be tolerated successfully. Unit is percentage, Default is `100`. Only can be set if `wait_node_ready` is `true`. :param pulumi.Input[str] scaling_group_name: Name of relative scaling group. :param pulumi.Input[int] scaling_group_project_id: Project ID the scaling group belongs to. :param pulumi.Input[str] scaling_mode: Auto scaling mode. Valid values are `CLASSIC_SCALING`(scaling by create/destroy instances), `WAKE_UP_STOPPED_SCALING`(Boot priority for expansion. When expanding the capacity, the shutdown operation is given priority to the shutdown of the instance. If the number of instances is still lower than the expected number of instances after the startup, the instance will be created, and the method of destroying the instance will still be used for shrinking). @@ -1192,6 +1322,7 @@ def __init__(__self__, :param pulumi.Input[str] termination_policies: Policy of scaling group termination. Available values: `["OLDEST_INSTANCE"]`, `["NEWEST_INSTANCE"]`. :param pulumi.Input[int] unschedulable: Sets whether the joining node participates in the schedule. Default is '0'. Participate in scheduling. :param pulumi.Input[str] vpc_id: ID of VPC network. + :param pulumi.Input[bool] wait_node_ready: Whether to wait for all expansion resources to be ready. Default is false. Only can be set if `enable_auto_scale` is `false`. :param pulumi.Input[Sequence[pulumi.Input[str]]] zones: List of auto scaling group available zones, for Basic network it is required. """ ... @@ -1209,6 +1340,8 @@ def __init__(__self__, > **NOTE:** In order to ensure the integrity of customer data, if the cvm instance was destroyed due to shrinking, it will keep the cbs associate with cvm by default. If you want to destroy together, please set `delete_with_instance` to `true`. + > **NOTE:** There are two parameters `wait_node_ready` and `scale_tolerance` to ensure better management of node pool scaling operations. If this parameter is set, when creating resources, if the set criteria are not met, the resources will be marked as `tainted`. + ## Example Usage @@ -1339,6 +1472,67 @@ def __init__(__self__, ``` + + ```python + import pulumi + import tencentcloud_iac_pulumi as tencentcloud + + example = tencentcloud.kubernetes.NodePool("example", + cluster_id=tencentcloud_kubernetes_cluster["managed_cluster"]["id"], + max_size=100, + min_size=1, + vpc_id=data["tencentcloud_vpc_subnets"]["vpc"]["instance_list"][0]["vpc_id"], + subnet_ids=[data["tencentcloud_vpc_subnets"]["vpc"]["instance_list"][0]["subnet_id"]], + retry_policy="INCREMENTAL_INTERVALS", + desired_capacity=50, + enable_auto_scale=False, + wait_node_ready=True, + scale_tolerance=90, + multi_zone_subnet_policy="EQUALITY", + node_os="img-6n21msk1", + delete_keep_instance=False, + auto_scaling_config=tencentcloud.kubernetes.NodePoolAutoScalingConfigArgs( + instance_type=var["default_instance_type"], + system_disk_type="CLOUD_PREMIUM", + system_disk_size=50, + orderly_security_group_ids=["sg-bw28gmso"], + data_disks=[tencentcloud.kubernetes.NodePoolAutoScalingConfigDataDiskArgs( + disk_type="CLOUD_PREMIUM", + disk_size=50, + delete_with_instance=True, + )], + internet_charge_type="TRAFFIC_POSTPAID_BY_HOUR", + internet_max_bandwidth_out=10, + public_ip_assigned=True, + password="test123#", + enhanced_security_service=False, + enhanced_monitor_service=False, + host_name="12.123.0.0", + host_name_style="ORIGINAL", + ), + labels={ + "test1": "test1", + "test2": "test2", + }, + taints=[ + tencentcloud.kubernetes.NodePoolTaintArgs( + key="test_taint", + value="taint_value", + effect="PreferNoSchedule", + ), + tencentcloud.kubernetes.NodePoolTaintArgs( + key="test_taint2", + value="taint_value2", + effect="PreferNoSchedule", + ), + ], + node_config=tencentcloud.kubernetes.NodePoolNodeConfigArgs( + docker_graph_path="/var/lib/docker", + extra_args=["root-dir=/var/lib/kubelet"], + )) + ``` + + ## Import tke node pool can be imported, e.g. @@ -1379,6 +1573,7 @@ def _internal_init(__self__, node_os: Optional[pulumi.Input[str]] = None, node_os_type: Optional[pulumi.Input[str]] = None, retry_policy: Optional[pulumi.Input[str]] = None, + scale_tolerance: Optional[pulumi.Input[int]] = None, scaling_group_name: Optional[pulumi.Input[str]] = None, scaling_group_project_id: Optional[pulumi.Input[int]] = None, scaling_mode: Optional[pulumi.Input[str]] = None, @@ -1388,6 +1583,7 @@ def _internal_init(__self__, termination_policies: Optional[pulumi.Input[str]] = None, unschedulable: Optional[pulumi.Input[int]] = None, vpc_id: Optional[pulumi.Input[str]] = None, + wait_node_ready: Optional[pulumi.Input[bool]] = None, zones: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, __props__=None): opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts) @@ -1423,6 +1619,7 @@ def _internal_init(__self__, __props__.__dict__["node_os"] = node_os __props__.__dict__["node_os_type"] = node_os_type __props__.__dict__["retry_policy"] = retry_policy + __props__.__dict__["scale_tolerance"] = scale_tolerance __props__.__dict__["scaling_group_name"] = scaling_group_name __props__.__dict__["scaling_group_project_id"] = scaling_group_project_id __props__.__dict__["scaling_mode"] = scaling_mode @@ -1434,6 +1631,7 @@ def _internal_init(__self__, if vpc_id is None and not opts.urn: raise TypeError("Missing required property 'vpc_id'") __props__.__dict__["vpc_id"] = vpc_id + __props__.__dict__["wait_node_ready"] = wait_node_ready __props__.__dict__["zones"] = zones __props__.__dict__["auto_scaling_group_id"] = None __props__.__dict__["autoscaling_added_total"] = None @@ -1473,6 +1671,7 @@ def get(resource_name: str, node_os: Optional[pulumi.Input[str]] = None, node_os_type: Optional[pulumi.Input[str]] = None, retry_policy: Optional[pulumi.Input[str]] = None, + scale_tolerance: Optional[pulumi.Input[int]] = None, scaling_group_name: Optional[pulumi.Input[str]] = None, scaling_group_project_id: Optional[pulumi.Input[int]] = None, scaling_mode: Optional[pulumi.Input[str]] = None, @@ -1483,6 +1682,7 @@ def get(resource_name: str, termination_policies: Optional[pulumi.Input[str]] = None, unschedulable: Optional[pulumi.Input[int]] = None, vpc_id: Optional[pulumi.Input[str]] = None, + wait_node_ready: Optional[pulumi.Input[bool]] = None, zones: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None) -> 'NodePool': """ Get an existing NodePool resource's state with the given name, id, and optional extra @@ -1513,6 +1713,7 @@ def get(resource_name: str, :param pulumi.Input[str] node_os: Operating system of the cluster. Please refer to [TencentCloud Documentation](https://www.tencentcloud.com/document/product/457/46750?lang=en&pg=#list-of-public-images-supported-by-tke) for available values. Default is 'tlinux2.4x86_64'. This parameter will only affect new nodes, not including the existing nodes. :param pulumi.Input[str] node_os_type: The image version of the node. Valida values are `DOCKER_CUSTOMIZE` and `GENERAL`. Default is `GENERAL`. This parameter will only affect new nodes, not including the existing nodes. :param pulumi.Input[str] retry_policy: Available values for retry policies include `IMMEDIATE_RETRY` and `INCREMENTAL_INTERVALS`. + :param pulumi.Input[int] scale_tolerance: Control how many expectations(`desired_capacity`) can be tolerated successfully. Unit is percentage, Default is `100`. Only can be set if `wait_node_ready` is `true`. :param pulumi.Input[str] scaling_group_name: Name of relative scaling group. :param pulumi.Input[int] scaling_group_project_id: Project ID the scaling group belongs to. :param pulumi.Input[str] scaling_mode: Auto scaling mode. Valid values are `CLASSIC_SCALING`(scaling by create/destroy instances), `WAKE_UP_STOPPED_SCALING`(Boot priority for expansion. When expanding the capacity, the shutdown operation is given priority to the shutdown of the instance. If the number of instances is still lower than the expected number of instances after the startup, the instance will be created, and the method of destroying the instance will still be used for shrinking). @@ -1523,6 +1724,7 @@ def get(resource_name: str, :param pulumi.Input[str] termination_policies: Policy of scaling group termination. Available values: `["OLDEST_INSTANCE"]`, `["NEWEST_INSTANCE"]`. :param pulumi.Input[int] unschedulable: Sets whether the joining node participates in the schedule. Default is '0'. Participate in scheduling. :param pulumi.Input[str] vpc_id: ID of VPC network. + :param pulumi.Input[bool] wait_node_ready: Whether to wait for all expansion resources to be ready. Default is false. Only can be set if `enable_auto_scale` is `false`. :param pulumi.Input[Sequence[pulumi.Input[str]]] zones: List of auto scaling group available zones, for Basic network it is required. """ opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id)) @@ -1551,6 +1753,7 @@ def get(resource_name: str, __props__.__dict__["node_os"] = node_os __props__.__dict__["node_os_type"] = node_os_type __props__.__dict__["retry_policy"] = retry_policy + __props__.__dict__["scale_tolerance"] = scale_tolerance __props__.__dict__["scaling_group_name"] = scaling_group_name __props__.__dict__["scaling_group_project_id"] = scaling_group_project_id __props__.__dict__["scaling_mode"] = scaling_mode @@ -1561,6 +1764,7 @@ def get(resource_name: str, __props__.__dict__["termination_policies"] = termination_policies __props__.__dict__["unschedulable"] = unschedulable __props__.__dict__["vpc_id"] = vpc_id + __props__.__dict__["wait_node_ready"] = wait_node_ready __props__.__dict__["zones"] = zones return NodePool(resource_name, opts=opts, __props__=__props__) @@ -1740,6 +1944,14 @@ def retry_policy(self) -> pulumi.Output[Optional[str]]: """ return pulumi.get(self, "retry_policy") + @property + @pulumi.getter(name="scaleTolerance") + def scale_tolerance(self) -> pulumi.Output[Optional[int]]: + """ + Control how many expectations(`desired_capacity`) can be tolerated successfully. Unit is percentage, Default is `100`. Only can be set if `wait_node_ready` is `true`. + """ + return pulumi.get(self, "scale_tolerance") + @property @pulumi.getter(name="scalingGroupName") def scaling_group_name(self) -> pulumi.Output[str]: @@ -1820,6 +2032,14 @@ def vpc_id(self) -> pulumi.Output[str]: """ return pulumi.get(self, "vpc_id") + @property + @pulumi.getter(name="waitNodeReady") + def wait_node_ready(self) -> pulumi.Output[Optional[bool]]: + """ + Whether to wait for all expansion resources to be ready. Default is false. Only can be set if `enable_auto_scale` is `false`. + """ + return pulumi.get(self, "wait_node_ready") + @property @pulumi.getter def zones(self) -> pulumi.Output[Optional[Sequence[str]]]: diff --git a/sdk/python/tencentcloud_iac_pulumi/reserve/ip_address.py b/sdk/python/tencentcloud_iac_pulumi/reserve/ip_address.py index 39128c8e6..78dca984a 100644 --- a/sdk/python/tencentcloud_iac_pulumi/reserve/ip_address.py +++ b/sdk/python/tencentcloud_iac_pulumi/reserve/ip_address.py @@ -311,7 +311,34 @@ def __init__(__self__, vpc_id: Optional[pulumi.Input[str]] = None, __props__=None): """ - Create a IpAddress resource with the given unique name, props, and options. + Provides a resource to create a vpc reserve ip addresses + + ## Example Usage + + + ```python + import pulumi + import tencentcloud_iac_pulumi as tencentcloud + + reserve_ip = tencentcloud.reserve.IpAddress("reserveIp", + description="description", + ip_address="10.0.0.13", + subnet_id="xxxxxx", + tags={ + "test1": "test1", + }, + vpc_id="xxxxxx") + ``` + + + ## Import + + vpc reserve_ip_addresses can be imported using the id, e.g. + + ```sh + $ pulumi import tencentcloud:Reserve/ipAddress:IpAddress reserve_ip_addresses ${vpcId}#${reserveIpId} + ``` + :param str resource_name: The name of the resource. :param pulumi.ResourceOptions opts: Options for the resource. :param pulumi.Input[str] description: The IP description is retained on the intranet. @@ -328,7 +355,34 @@ def __init__(__self__, args: IpAddressArgs, opts: Optional[pulumi.ResourceOptions] = None): """ - Create a IpAddress resource with the given unique name, props, and options. + Provides a resource to create a vpc reserve ip addresses + + ## Example Usage + + + ```python + import pulumi + import tencentcloud_iac_pulumi as tencentcloud + + reserve_ip = tencentcloud.reserve.IpAddress("reserveIp", + description="description", + ip_address="10.0.0.13", + subnet_id="xxxxxx", + tags={ + "test1": "test1", + }, + vpc_id="xxxxxx") + ``` + + + ## Import + + vpc reserve_ip_addresses can be imported using the id, e.g. + + ```sh + $ pulumi import tencentcloud:Reserve/ipAddress:IpAddress reserve_ip_addresses ${vpcId}#${reserveIpId} + ``` + :param str resource_name: The name of the resource. :param IpAddressArgs args: The arguments to use to populate this resource's properties. :param pulumi.ResourceOptions opts: Options for the resource. diff --git a/sdk/python/tencentcloud_iac_pulumi/scf/__init__.py b/sdk/python/tencentcloud_iac_pulumi/scf/__init__.py index bc4042a93..3615becee 100644 --- a/sdk/python/tencentcloud_iac_pulumi/scf/__init__.py +++ b/sdk/python/tencentcloud_iac_pulumi/scf/__init__.py @@ -5,6 +5,7 @@ from .. import _utilities import typing # Export this package's modules as members: +from .custom_domain import * from .function import * from .function_alias import * from .function_event_invoke_config import * diff --git a/sdk/python/tencentcloud_iac_pulumi/scf/_inputs.py b/sdk/python/tencentcloud_iac_pulumi/scf/_inputs.py index b614e7a49..ab97f5d97 100644 --- a/sdk/python/tencentcloud_iac_pulumi/scf/_inputs.py +++ b/sdk/python/tencentcloud_iac_pulumi/scf/_inputs.py @@ -10,6 +10,10 @@ from .. import _utilities __all__ = [ + 'CustomDomainCertConfigArgs', + 'CustomDomainEndpointsConfigArgs', + 'CustomDomainEndpointsConfigPathRewriteArgs', + 'CustomDomainWafConfigArgs', 'FunctionAliasRoutingConfigArgs', 'FunctionAliasRoutingConfigAdditionalVersionMatchArgs', 'FunctionAliasRoutingConfigAdditionalVersionWeightArgs', @@ -26,6 +30,203 @@ 'GetTriggersFilterArgs', ] +@pulumi.input_type +class CustomDomainCertConfigArgs: + def __init__(__self__, *, + certificate_id: Optional[pulumi.Input[str]] = None): + """ + :param pulumi.Input[str] certificate_id: SSL Certificates ID. + """ + if certificate_id is not None: + pulumi.set(__self__, "certificate_id", certificate_id) + + @property + @pulumi.getter(name="certificateId") + def certificate_id(self) -> Optional[pulumi.Input[str]]: + """ + SSL Certificates ID. + """ + return pulumi.get(self, "certificate_id") + + @certificate_id.setter + def certificate_id(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "certificate_id", value) + + +@pulumi.input_type +class CustomDomainEndpointsConfigArgs: + def __init__(__self__, *, + function_name: pulumi.Input[str], + namespace: pulumi.Input[str], + path_match: pulumi.Input[str], + qualifier: pulumi.Input[str], + path_rewrites: Optional[pulumi.Input[Sequence[pulumi.Input['CustomDomainEndpointsConfigPathRewriteArgs']]]] = None): + """ + :param pulumi.Input[str] function_name: Function name. + :param pulumi.Input[str] namespace: Function namespace. + :param pulumi.Input[str] path_match: Path, value specification: /,/*,/xxx,/xxx/a,/xxx/*. + :param pulumi.Input[str] qualifier: Function alias or version. + :param pulumi.Input[Sequence[pulumi.Input['CustomDomainEndpointsConfigPathRewriteArgs']]] path_rewrites: Path rewriting policy. + """ + pulumi.set(__self__, "function_name", function_name) + pulumi.set(__self__, "namespace", namespace) + pulumi.set(__self__, "path_match", path_match) + pulumi.set(__self__, "qualifier", qualifier) + if path_rewrites is not None: + pulumi.set(__self__, "path_rewrites", path_rewrites) + + @property + @pulumi.getter(name="functionName") + def function_name(self) -> pulumi.Input[str]: + """ + Function name. + """ + return pulumi.get(self, "function_name") + + @function_name.setter + def function_name(self, value: pulumi.Input[str]): + pulumi.set(self, "function_name", value) + + @property + @pulumi.getter + def namespace(self) -> pulumi.Input[str]: + """ + Function namespace. + """ + return pulumi.get(self, "namespace") + + @namespace.setter + def namespace(self, value: pulumi.Input[str]): + pulumi.set(self, "namespace", value) + + @property + @pulumi.getter(name="pathMatch") + def path_match(self) -> pulumi.Input[str]: + """ + Path, value specification: /,/*,/xxx,/xxx/a,/xxx/*. + """ + return pulumi.get(self, "path_match") + + @path_match.setter + def path_match(self, value: pulumi.Input[str]): + pulumi.set(self, "path_match", value) + + @property + @pulumi.getter + def qualifier(self) -> pulumi.Input[str]: + """ + Function alias or version. + """ + return pulumi.get(self, "qualifier") + + @qualifier.setter + def qualifier(self, value: pulumi.Input[str]): + pulumi.set(self, "qualifier", value) + + @property + @pulumi.getter(name="pathRewrites") + def path_rewrites(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['CustomDomainEndpointsConfigPathRewriteArgs']]]]: + """ + Path rewriting policy. + """ + return pulumi.get(self, "path_rewrites") + + @path_rewrites.setter + def path_rewrites(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['CustomDomainEndpointsConfigPathRewriteArgs']]]]): + pulumi.set(self, "path_rewrites", value) + + +@pulumi.input_type +class CustomDomainEndpointsConfigPathRewriteArgs: + def __init__(__self__, *, + path: pulumi.Input[str], + rewrite: pulumi.Input[str], + type: pulumi.Input[str]): + """ + :param pulumi.Input[str] path: Path that needs to be rerouted, value specification: /,/*,/xxx,/xxx/a,/xxx/*. + :param pulumi.Input[str] rewrite: Replacement values: such as/, /$. + :param pulumi.Input[str] type: Matching rules, value range: WildcardRules wildcard matching, ExactRules exact matching. + """ + pulumi.set(__self__, "path", path) + pulumi.set(__self__, "rewrite", rewrite) + pulumi.set(__self__, "type", type) + + @property + @pulumi.getter + def path(self) -> pulumi.Input[str]: + """ + Path that needs to be rerouted, value specification: /,/*,/xxx,/xxx/a,/xxx/*. + """ + return pulumi.get(self, "path") + + @path.setter + def path(self, value: pulumi.Input[str]): + pulumi.set(self, "path", value) + + @property + @pulumi.getter + def rewrite(self) -> pulumi.Input[str]: + """ + Replacement values: such as/, /$. + """ + return pulumi.get(self, "rewrite") + + @rewrite.setter + def rewrite(self, value: pulumi.Input[str]): + pulumi.set(self, "rewrite", value) + + @property + @pulumi.getter + def type(self) -> pulumi.Input[str]: + """ + Matching rules, value range: WildcardRules wildcard matching, ExactRules exact matching. + """ + return pulumi.get(self, "type") + + @type.setter + def type(self, value: pulumi.Input[str]): + pulumi.set(self, "type", value) + + +@pulumi.input_type +class CustomDomainWafConfigArgs: + def __init__(__self__, *, + waf_instance_id: Optional[pulumi.Input[str]] = None, + waf_open: Optional[pulumi.Input[str]] = None): + """ + :param pulumi.Input[str] waf_instance_id: Web Application Firewall Instance ID. + :param pulumi.Input[str] waf_open: Whether the Web Application Firewall is turned on, value range:OPEN, CLOSE. + """ + if waf_instance_id is not None: + pulumi.set(__self__, "waf_instance_id", waf_instance_id) + if waf_open is not None: + pulumi.set(__self__, "waf_open", waf_open) + + @property + @pulumi.getter(name="wafInstanceId") + def waf_instance_id(self) -> Optional[pulumi.Input[str]]: + """ + Web Application Firewall Instance ID. + """ + return pulumi.get(self, "waf_instance_id") + + @waf_instance_id.setter + def waf_instance_id(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "waf_instance_id", value) + + @property + @pulumi.getter(name="wafOpen") + def waf_open(self) -> Optional[pulumi.Input[str]]: + """ + Whether the Web Application Firewall is turned on, value range:OPEN, CLOSE. + """ + return pulumi.get(self, "waf_open") + + @waf_open.setter + def waf_open(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "waf_open", value) + + @pulumi.input_type class FunctionAliasRoutingConfigArgs: def __init__(__self__, *, diff --git a/sdk/python/tencentcloud_iac_pulumi/scf/custom_domain.py b/sdk/python/tencentcloud_iac_pulumi/scf/custom_domain.py new file mode 100644 index 000000000..867f4ef6e --- /dev/null +++ b/sdk/python/tencentcloud_iac_pulumi/scf/custom_domain.py @@ -0,0 +1,398 @@ +# coding=utf-8 +# *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. *** +# *** Do not edit by hand unless you're certain you know what you are doing! *** + +import copy +import warnings +import pulumi +import pulumi.runtime +from typing import Any, Mapping, Optional, Sequence, Union, overload +from .. import _utilities +from . import outputs +from ._inputs import * + +__all__ = ['CustomDomainArgs', 'CustomDomain'] + +@pulumi.input_type +class CustomDomainArgs: + def __init__(__self__, *, + domain: pulumi.Input[str], + endpoints_configs: pulumi.Input[Sequence[pulumi.Input['CustomDomainEndpointsConfigArgs']]], + protocol: pulumi.Input[str], + cert_config: Optional[pulumi.Input['CustomDomainCertConfigArgs']] = None, + waf_config: Optional[pulumi.Input['CustomDomainWafConfigArgs']] = None): + """ + The set of arguments for constructing a CustomDomain resource. + :param pulumi.Input[str] domain: Domain names, pan-domain names are not supported. + :param pulumi.Input[Sequence[pulumi.Input['CustomDomainEndpointsConfigArgs']]] endpoints_configs: Routing configuration. + :param pulumi.Input[str] protocol: Protocol, value range: HTTP, HTTPS, HTTP&HTTPS. + :param pulumi.Input['CustomDomainCertConfigArgs'] cert_config: Certificate configuration information, required for HTTPS protocol. + :param pulumi.Input['CustomDomainWafConfigArgs'] waf_config: Web Application Firewall Configuration. + """ + pulumi.set(__self__, "domain", domain) + pulumi.set(__self__, "endpoints_configs", endpoints_configs) + pulumi.set(__self__, "protocol", protocol) + if cert_config is not None: + pulumi.set(__self__, "cert_config", cert_config) + if waf_config is not None: + pulumi.set(__self__, "waf_config", waf_config) + + @property + @pulumi.getter + def domain(self) -> pulumi.Input[str]: + """ + Domain names, pan-domain names are not supported. + """ + return pulumi.get(self, "domain") + + @domain.setter + def domain(self, value: pulumi.Input[str]): + pulumi.set(self, "domain", value) + + @property + @pulumi.getter(name="endpointsConfigs") + def endpoints_configs(self) -> pulumi.Input[Sequence[pulumi.Input['CustomDomainEndpointsConfigArgs']]]: + """ + Routing configuration. + """ + return pulumi.get(self, "endpoints_configs") + + @endpoints_configs.setter + def endpoints_configs(self, value: pulumi.Input[Sequence[pulumi.Input['CustomDomainEndpointsConfigArgs']]]): + pulumi.set(self, "endpoints_configs", value) + + @property + @pulumi.getter + def protocol(self) -> pulumi.Input[str]: + """ + Protocol, value range: HTTP, HTTPS, HTTP&HTTPS. + """ + return pulumi.get(self, "protocol") + + @protocol.setter + def protocol(self, value: pulumi.Input[str]): + pulumi.set(self, "protocol", value) + + @property + @pulumi.getter(name="certConfig") + def cert_config(self) -> Optional[pulumi.Input['CustomDomainCertConfigArgs']]: + """ + Certificate configuration information, required for HTTPS protocol. + """ + return pulumi.get(self, "cert_config") + + @cert_config.setter + def cert_config(self, value: Optional[pulumi.Input['CustomDomainCertConfigArgs']]): + pulumi.set(self, "cert_config", value) + + @property + @pulumi.getter(name="wafConfig") + def waf_config(self) -> Optional[pulumi.Input['CustomDomainWafConfigArgs']]: + """ + Web Application Firewall Configuration. + """ + return pulumi.get(self, "waf_config") + + @waf_config.setter + def waf_config(self, value: Optional[pulumi.Input['CustomDomainWafConfigArgs']]): + pulumi.set(self, "waf_config", value) + + +@pulumi.input_type +class _CustomDomainState: + def __init__(__self__, *, + cert_config: Optional[pulumi.Input['CustomDomainCertConfigArgs']] = None, + domain: Optional[pulumi.Input[str]] = None, + endpoints_configs: Optional[pulumi.Input[Sequence[pulumi.Input['CustomDomainEndpointsConfigArgs']]]] = None, + protocol: Optional[pulumi.Input[str]] = None, + waf_config: Optional[pulumi.Input['CustomDomainWafConfigArgs']] = None): + """ + Input properties used for looking up and filtering CustomDomain resources. + :param pulumi.Input['CustomDomainCertConfigArgs'] cert_config: Certificate configuration information, required for HTTPS protocol. + :param pulumi.Input[str] domain: Domain names, pan-domain names are not supported. + :param pulumi.Input[Sequence[pulumi.Input['CustomDomainEndpointsConfigArgs']]] endpoints_configs: Routing configuration. + :param pulumi.Input[str] protocol: Protocol, value range: HTTP, HTTPS, HTTP&HTTPS. + :param pulumi.Input['CustomDomainWafConfigArgs'] waf_config: Web Application Firewall Configuration. + """ + if cert_config is not None: + pulumi.set(__self__, "cert_config", cert_config) + if domain is not None: + pulumi.set(__self__, "domain", domain) + if endpoints_configs is not None: + pulumi.set(__self__, "endpoints_configs", endpoints_configs) + if protocol is not None: + pulumi.set(__self__, "protocol", protocol) + if waf_config is not None: + pulumi.set(__self__, "waf_config", waf_config) + + @property + @pulumi.getter(name="certConfig") + def cert_config(self) -> Optional[pulumi.Input['CustomDomainCertConfigArgs']]: + """ + Certificate configuration information, required for HTTPS protocol. + """ + return pulumi.get(self, "cert_config") + + @cert_config.setter + def cert_config(self, value: Optional[pulumi.Input['CustomDomainCertConfigArgs']]): + pulumi.set(self, "cert_config", value) + + @property + @pulumi.getter + def domain(self) -> Optional[pulumi.Input[str]]: + """ + Domain names, pan-domain names are not supported. + """ + return pulumi.get(self, "domain") + + @domain.setter + def domain(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "domain", value) + + @property + @pulumi.getter(name="endpointsConfigs") + def endpoints_configs(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['CustomDomainEndpointsConfigArgs']]]]: + """ + Routing configuration. + """ + return pulumi.get(self, "endpoints_configs") + + @endpoints_configs.setter + def endpoints_configs(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['CustomDomainEndpointsConfigArgs']]]]): + pulumi.set(self, "endpoints_configs", value) + + @property + @pulumi.getter + def protocol(self) -> Optional[pulumi.Input[str]]: + """ + Protocol, value range: HTTP, HTTPS, HTTP&HTTPS. + """ + return pulumi.get(self, "protocol") + + @protocol.setter + def protocol(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "protocol", value) + + @property + @pulumi.getter(name="wafConfig") + def waf_config(self) -> Optional[pulumi.Input['CustomDomainWafConfigArgs']]: + """ + Web Application Firewall Configuration. + """ + return pulumi.get(self, "waf_config") + + @waf_config.setter + def waf_config(self, value: Optional[pulumi.Input['CustomDomainWafConfigArgs']]): + pulumi.set(self, "waf_config", value) + + +class CustomDomain(pulumi.CustomResource): + @overload + def __init__(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + cert_config: Optional[pulumi.Input[pulumi.InputType['CustomDomainCertConfigArgs']]] = None, + domain: Optional[pulumi.Input[str]] = None, + endpoints_configs: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['CustomDomainEndpointsConfigArgs']]]]] = None, + protocol: Optional[pulumi.Input[str]] = None, + waf_config: Optional[pulumi.Input[pulumi.InputType['CustomDomainWafConfigArgs']]] = None, + __props__=None): + """ + Provides a resource to create a scf custom domain + + ## Example Usage + + + ```python + import pulumi + import tencentcloud_iac_pulumi as tencentcloud + + scf_custom_domain = tencentcloud.scf.CustomDomain("scfCustomDomain", + domain="xxxxxx", + endpoints_configs=[tencentcloud.scf.CustomDomainEndpointsConfigArgs( + function_name="xxxxxx", + namespace="default", + path_match="/aa/*", + qualifier="$LATEST", + )], + protocol="HTTP", + waf_config=tencentcloud.scf.CustomDomainWafConfigArgs( + waf_open="CLOSE", + )) + ``` + + + ## Import + + scf scf_custom_domain can be imported using the id, e.g. + + ```sh + $ pulumi import tencentcloud:Scf/customDomain:CustomDomain scf_custom_domain ${domain} + ``` + + :param str resource_name: The name of the resource. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[pulumi.InputType['CustomDomainCertConfigArgs']] cert_config: Certificate configuration information, required for HTTPS protocol. + :param pulumi.Input[str] domain: Domain names, pan-domain names are not supported. + :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['CustomDomainEndpointsConfigArgs']]]] endpoints_configs: Routing configuration. + :param pulumi.Input[str] protocol: Protocol, value range: HTTP, HTTPS, HTTP&HTTPS. + :param pulumi.Input[pulumi.InputType['CustomDomainWafConfigArgs']] waf_config: Web Application Firewall Configuration. + """ + ... + @overload + def __init__(__self__, + resource_name: str, + args: CustomDomainArgs, + opts: Optional[pulumi.ResourceOptions] = None): + """ + Provides a resource to create a scf custom domain + + ## Example Usage + + + ```python + import pulumi + import tencentcloud_iac_pulumi as tencentcloud + + scf_custom_domain = tencentcloud.scf.CustomDomain("scfCustomDomain", + domain="xxxxxx", + endpoints_configs=[tencentcloud.scf.CustomDomainEndpointsConfigArgs( + function_name="xxxxxx", + namespace="default", + path_match="/aa/*", + qualifier="$LATEST", + )], + protocol="HTTP", + waf_config=tencentcloud.scf.CustomDomainWafConfigArgs( + waf_open="CLOSE", + )) + ``` + + + ## Import + + scf scf_custom_domain can be imported using the id, e.g. + + ```sh + $ pulumi import tencentcloud:Scf/customDomain:CustomDomain scf_custom_domain ${domain} + ``` + + :param str resource_name: The name of the resource. + :param CustomDomainArgs args: The arguments to use to populate this resource's properties. + :param pulumi.ResourceOptions opts: Options for the resource. + """ + ... + def __init__(__self__, resource_name: str, *args, **kwargs): + resource_args, opts = _utilities.get_resource_args_opts(CustomDomainArgs, pulumi.ResourceOptions, *args, **kwargs) + if resource_args is not None: + __self__._internal_init(resource_name, opts, **resource_args.__dict__) + else: + __self__._internal_init(resource_name, *args, **kwargs) + + def _internal_init(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + cert_config: Optional[pulumi.Input[pulumi.InputType['CustomDomainCertConfigArgs']]] = None, + domain: Optional[pulumi.Input[str]] = None, + endpoints_configs: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['CustomDomainEndpointsConfigArgs']]]]] = None, + protocol: Optional[pulumi.Input[str]] = None, + waf_config: Optional[pulumi.Input[pulumi.InputType['CustomDomainWafConfigArgs']]] = None, + __props__=None): + opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts) + if not isinstance(opts, pulumi.ResourceOptions): + raise TypeError('Expected resource options to be a ResourceOptions instance') + if opts.id is None: + if __props__ is not None: + raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') + __props__ = CustomDomainArgs.__new__(CustomDomainArgs) + + __props__.__dict__["cert_config"] = cert_config + if domain is None and not opts.urn: + raise TypeError("Missing required property 'domain'") + __props__.__dict__["domain"] = domain + if endpoints_configs is None and not opts.urn: + raise TypeError("Missing required property 'endpoints_configs'") + __props__.__dict__["endpoints_configs"] = endpoints_configs + if protocol is None and not opts.urn: + raise TypeError("Missing required property 'protocol'") + __props__.__dict__["protocol"] = protocol + __props__.__dict__["waf_config"] = waf_config + super(CustomDomain, __self__).__init__( + 'tencentcloud:Scf/customDomain:CustomDomain', + resource_name, + __props__, + opts) + + @staticmethod + def get(resource_name: str, + id: pulumi.Input[str], + opts: Optional[pulumi.ResourceOptions] = None, + cert_config: Optional[pulumi.Input[pulumi.InputType['CustomDomainCertConfigArgs']]] = None, + domain: Optional[pulumi.Input[str]] = None, + endpoints_configs: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['CustomDomainEndpointsConfigArgs']]]]] = None, + protocol: Optional[pulumi.Input[str]] = None, + waf_config: Optional[pulumi.Input[pulumi.InputType['CustomDomainWafConfigArgs']]] = None) -> 'CustomDomain': + """ + Get an existing CustomDomain resource's state with the given name, id, and optional extra + properties used to qualify the lookup. + + :param str resource_name: The unique name of the resulting resource. + :param pulumi.Input[str] id: The unique provider ID of the resource to lookup. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[pulumi.InputType['CustomDomainCertConfigArgs']] cert_config: Certificate configuration information, required for HTTPS protocol. + :param pulumi.Input[str] domain: Domain names, pan-domain names are not supported. + :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['CustomDomainEndpointsConfigArgs']]]] endpoints_configs: Routing configuration. + :param pulumi.Input[str] protocol: Protocol, value range: HTTP, HTTPS, HTTP&HTTPS. + :param pulumi.Input[pulumi.InputType['CustomDomainWafConfigArgs']] waf_config: Web Application Firewall Configuration. + """ + opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id)) + + __props__ = _CustomDomainState.__new__(_CustomDomainState) + + __props__.__dict__["cert_config"] = cert_config + __props__.__dict__["domain"] = domain + __props__.__dict__["endpoints_configs"] = endpoints_configs + __props__.__dict__["protocol"] = protocol + __props__.__dict__["waf_config"] = waf_config + return CustomDomain(resource_name, opts=opts, __props__=__props__) + + @property + @pulumi.getter(name="certConfig") + def cert_config(self) -> pulumi.Output['outputs.CustomDomainCertConfig']: + """ + Certificate configuration information, required for HTTPS protocol. + """ + return pulumi.get(self, "cert_config") + + @property + @pulumi.getter + def domain(self) -> pulumi.Output[str]: + """ + Domain names, pan-domain names are not supported. + """ + return pulumi.get(self, "domain") + + @property + @pulumi.getter(name="endpointsConfigs") + def endpoints_configs(self) -> pulumi.Output[Sequence['outputs.CustomDomainEndpointsConfig']]: + """ + Routing configuration. + """ + return pulumi.get(self, "endpoints_configs") + + @property + @pulumi.getter + def protocol(self) -> pulumi.Output[str]: + """ + Protocol, value range: HTTP, HTTPS, HTTP&HTTPS. + """ + return pulumi.get(self, "protocol") + + @property + @pulumi.getter(name="wafConfig") + def waf_config(self) -> pulumi.Output['outputs.CustomDomainWafConfig']: + """ + Web Application Firewall Configuration. + """ + return pulumi.get(self, "waf_config") + diff --git a/sdk/python/tencentcloud_iac_pulumi/scf/outputs.py b/sdk/python/tencentcloud_iac_pulumi/scf/outputs.py index 32dff2df6..e5c982899 100644 --- a/sdk/python/tencentcloud_iac_pulumi/scf/outputs.py +++ b/sdk/python/tencentcloud_iac_pulumi/scf/outputs.py @@ -11,6 +11,10 @@ from . import outputs __all__ = [ + 'CustomDomainCertConfig', + 'CustomDomainEndpointsConfig', + 'CustomDomainEndpointsConfigPathRewrite', + 'CustomDomainWafConfig', 'FunctionAliasRoutingConfig', 'FunctionAliasRoutingConfigAdditionalVersionMatch', 'FunctionAliasRoutingConfigAdditionalVersionWeight', @@ -49,6 +53,216 @@ 'GetTriggersTriggerResult', ] +@pulumi.output_type +class CustomDomainCertConfig(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "certificateId": + suggest = "certificate_id" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in CustomDomainCertConfig. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + CustomDomainCertConfig.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + CustomDomainCertConfig.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + certificate_id: Optional[str] = None): + """ + :param str certificate_id: SSL Certificates ID. + """ + if certificate_id is not None: + pulumi.set(__self__, "certificate_id", certificate_id) + + @property + @pulumi.getter(name="certificateId") + def certificate_id(self) -> Optional[str]: + """ + SSL Certificates ID. + """ + return pulumi.get(self, "certificate_id") + + +@pulumi.output_type +class CustomDomainEndpointsConfig(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "functionName": + suggest = "function_name" + elif key == "pathMatch": + suggest = "path_match" + elif key == "pathRewrites": + suggest = "path_rewrites" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in CustomDomainEndpointsConfig. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + CustomDomainEndpointsConfig.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + CustomDomainEndpointsConfig.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + function_name: str, + namespace: str, + path_match: str, + qualifier: str, + path_rewrites: Optional[Sequence['outputs.CustomDomainEndpointsConfigPathRewrite']] = None): + """ + :param str function_name: Function name. + :param str namespace: Function namespace. + :param str path_match: Path, value specification: /,/*,/xxx,/xxx/a,/xxx/*. + :param str qualifier: Function alias or version. + :param Sequence['CustomDomainEndpointsConfigPathRewriteArgs'] path_rewrites: Path rewriting policy. + """ + pulumi.set(__self__, "function_name", function_name) + pulumi.set(__self__, "namespace", namespace) + pulumi.set(__self__, "path_match", path_match) + pulumi.set(__self__, "qualifier", qualifier) + if path_rewrites is not None: + pulumi.set(__self__, "path_rewrites", path_rewrites) + + @property + @pulumi.getter(name="functionName") + def function_name(self) -> str: + """ + Function name. + """ + return pulumi.get(self, "function_name") + + @property + @pulumi.getter + def namespace(self) -> str: + """ + Function namespace. + """ + return pulumi.get(self, "namespace") + + @property + @pulumi.getter(name="pathMatch") + def path_match(self) -> str: + """ + Path, value specification: /,/*,/xxx,/xxx/a,/xxx/*. + """ + return pulumi.get(self, "path_match") + + @property + @pulumi.getter + def qualifier(self) -> str: + """ + Function alias or version. + """ + return pulumi.get(self, "qualifier") + + @property + @pulumi.getter(name="pathRewrites") + def path_rewrites(self) -> Optional[Sequence['outputs.CustomDomainEndpointsConfigPathRewrite']]: + """ + Path rewriting policy. + """ + return pulumi.get(self, "path_rewrites") + + +@pulumi.output_type +class CustomDomainEndpointsConfigPathRewrite(dict): + def __init__(__self__, *, + path: str, + rewrite: str, + type: str): + """ + :param str path: Path that needs to be rerouted, value specification: /,/*,/xxx,/xxx/a,/xxx/*. + :param str rewrite: Replacement values: such as/, /$. + :param str type: Matching rules, value range: WildcardRules wildcard matching, ExactRules exact matching. + """ + pulumi.set(__self__, "path", path) + pulumi.set(__self__, "rewrite", rewrite) + pulumi.set(__self__, "type", type) + + @property + @pulumi.getter + def path(self) -> str: + """ + Path that needs to be rerouted, value specification: /,/*,/xxx,/xxx/a,/xxx/*. + """ + return pulumi.get(self, "path") + + @property + @pulumi.getter + def rewrite(self) -> str: + """ + Replacement values: such as/, /$. + """ + return pulumi.get(self, "rewrite") + + @property + @pulumi.getter + def type(self) -> str: + """ + Matching rules, value range: WildcardRules wildcard matching, ExactRules exact matching. + """ + return pulumi.get(self, "type") + + +@pulumi.output_type +class CustomDomainWafConfig(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "wafInstanceId": + suggest = "waf_instance_id" + elif key == "wafOpen": + suggest = "waf_open" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in CustomDomainWafConfig. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + CustomDomainWafConfig.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + CustomDomainWafConfig.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + waf_instance_id: Optional[str] = None, + waf_open: Optional[str] = None): + """ + :param str waf_instance_id: Web Application Firewall Instance ID. + :param str waf_open: Whether the Web Application Firewall is turned on, value range:OPEN, CLOSE. + """ + if waf_instance_id is not None: + pulumi.set(__self__, "waf_instance_id", waf_instance_id) + if waf_open is not None: + pulumi.set(__self__, "waf_open", waf_open) + + @property + @pulumi.getter(name="wafInstanceId") + def waf_instance_id(self) -> Optional[str]: + """ + Web Application Firewall Instance ID. + """ + return pulumi.get(self, "waf_instance_id") + + @property + @pulumi.getter(name="wafOpen") + def waf_open(self) -> Optional[str]: + """ + Whether the Web Application Firewall is turned on, value range:OPEN, CLOSE. + """ + return pulumi.get(self, "waf_open") + + @pulumi.output_type class FunctionAliasRoutingConfig(dict): @staticmethod diff --git a/sdk/python/tencentcloud_iac_pulumi/vpn/_inputs.py b/sdk/python/tencentcloud_iac_pulumi/vpn/_inputs.py index 54932820e..5ae15e1fc 100644 --- a/sdk/python/tencentcloud_iac_pulumi/vpn/_inputs.py +++ b/sdk/python/tencentcloud_iac_pulumi/vpn/_inputs.py @@ -10,10 +10,135 @@ from .. import _utilities __all__ = [ + 'ConnectionBgpConfigArgs', + 'ConnectionHealthCheckConfigArgs', 'ConnectionSecurityGroupPolicyArgs', 'CustomerGatewayConfigurationDownloadCustomerGatewayVendorArgs', ] +@pulumi.input_type +class ConnectionBgpConfigArgs: + def __init__(__self__, *, + local_bgp_ip: pulumi.Input[str], + remote_bgp_ip: pulumi.Input[str], + tunnel_cidr: pulumi.Input[str]): + """ + :param pulumi.Input[str] local_bgp_ip: Cloud BGP address. It must be allocated from within the BGP tunnel network segment. + :param pulumi.Input[str] remote_bgp_ip: User side BGP address. It must be allocated from within the BGP tunnel network segment. + :param pulumi.Input[str] tunnel_cidr: BGP tunnel segment. + """ + pulumi.set(__self__, "local_bgp_ip", local_bgp_ip) + pulumi.set(__self__, "remote_bgp_ip", remote_bgp_ip) + pulumi.set(__self__, "tunnel_cidr", tunnel_cidr) + + @property + @pulumi.getter(name="localBgpIp") + def local_bgp_ip(self) -> pulumi.Input[str]: + """ + Cloud BGP address. It must be allocated from within the BGP tunnel network segment. + """ + return pulumi.get(self, "local_bgp_ip") + + @local_bgp_ip.setter + def local_bgp_ip(self, value: pulumi.Input[str]): + pulumi.set(self, "local_bgp_ip", value) + + @property + @pulumi.getter(name="remoteBgpIp") + def remote_bgp_ip(self) -> pulumi.Input[str]: + """ + User side BGP address. It must be allocated from within the BGP tunnel network segment. + """ + return pulumi.get(self, "remote_bgp_ip") + + @remote_bgp_ip.setter + def remote_bgp_ip(self, value: pulumi.Input[str]): + pulumi.set(self, "remote_bgp_ip", value) + + @property + @pulumi.getter(name="tunnelCidr") + def tunnel_cidr(self) -> pulumi.Input[str]: + """ + BGP tunnel segment. + """ + return pulumi.get(self, "tunnel_cidr") + + @tunnel_cidr.setter + def tunnel_cidr(self, value: pulumi.Input[str]): + pulumi.set(self, "tunnel_cidr", value) + + +@pulumi.input_type +class ConnectionHealthCheckConfigArgs: + def __init__(__self__, *, + probe_interval: Optional[pulumi.Input[int]] = None, + probe_threshold: Optional[pulumi.Input[int]] = None, + probe_timeout: Optional[pulumi.Input[int]] = None, + probe_type: Optional[pulumi.Input[str]] = None): + """ + :param pulumi.Input[int] probe_interval: Detection interval, Tencent Cloud's interval between two health checks, range [1000-5000], Unit: ms. + :param pulumi.Input[int] probe_threshold: Detection times, perform route switching after N consecutive health check failures, range [3-8], Unit: times. + :param pulumi.Input[int] probe_timeout: Detection timeout, range [10-5000], Unit: ms. + :param pulumi.Input[str] probe_type: Detection mode, default is `NQA`, cannot be modified. + """ + if probe_interval is not None: + pulumi.set(__self__, "probe_interval", probe_interval) + if probe_threshold is not None: + pulumi.set(__self__, "probe_threshold", probe_threshold) + if probe_timeout is not None: + pulumi.set(__self__, "probe_timeout", probe_timeout) + if probe_type is not None: + pulumi.set(__self__, "probe_type", probe_type) + + @property + @pulumi.getter(name="probeInterval") + def probe_interval(self) -> Optional[pulumi.Input[int]]: + """ + Detection interval, Tencent Cloud's interval between two health checks, range [1000-5000], Unit: ms. + """ + return pulumi.get(self, "probe_interval") + + @probe_interval.setter + def probe_interval(self, value: Optional[pulumi.Input[int]]): + pulumi.set(self, "probe_interval", value) + + @property + @pulumi.getter(name="probeThreshold") + def probe_threshold(self) -> Optional[pulumi.Input[int]]: + """ + Detection times, perform route switching after N consecutive health check failures, range [3-8], Unit: times. + """ + return pulumi.get(self, "probe_threshold") + + @probe_threshold.setter + def probe_threshold(self, value: Optional[pulumi.Input[int]]): + pulumi.set(self, "probe_threshold", value) + + @property + @pulumi.getter(name="probeTimeout") + def probe_timeout(self) -> Optional[pulumi.Input[int]]: + """ + Detection timeout, range [10-5000], Unit: ms. + """ + return pulumi.get(self, "probe_timeout") + + @probe_timeout.setter + def probe_timeout(self, value: Optional[pulumi.Input[int]]): + pulumi.set(self, "probe_timeout", value) + + @property + @pulumi.getter(name="probeType") + def probe_type(self) -> Optional[pulumi.Input[str]]: + """ + Detection mode, default is `NQA`, cannot be modified. + """ + return pulumi.get(self, "probe_type") + + @probe_type.setter + def probe_type(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "probe_type", value) + + @pulumi.input_type class ConnectionSecurityGroupPolicyArgs: def __init__(__self__, *, diff --git a/sdk/python/tencentcloud_iac_pulumi/vpn/connection.py b/sdk/python/tencentcloud_iac_pulumi/vpn/connection.py index 84e42007c..07afd1925 100644 --- a/sdk/python/tencentcloud_iac_pulumi/vpn/connection.py +++ b/sdk/python/tencentcloud_iac_pulumi/vpn/connection.py @@ -19,10 +19,12 @@ def __init__(__self__, *, customer_gateway_id: pulumi.Input[str], pre_share_key: pulumi.Input[str], vpn_gateway_id: pulumi.Input[str], + bgp_config: Optional[pulumi.Input['ConnectionBgpConfigArgs']] = None, dpd_action: Optional[pulumi.Input[str]] = None, dpd_enable: Optional[pulumi.Input[int]] = None, dpd_timeout: Optional[pulumi.Input[int]] = None, enable_health_check: Optional[pulumi.Input[bool]] = None, + health_check_config: Optional[pulumi.Input['ConnectionHealthCheckConfigArgs']] = None, health_check_local_ip: Optional[pulumi.Input[str]] = None, health_check_remote_ip: Optional[pulumi.Input[str]] = None, ike_dh_group_name: Optional[pulumi.Input[str]] = None, @@ -43,6 +45,7 @@ def __init__(__self__, *, ipsec_sa_lifetime_seconds: Optional[pulumi.Input[int]] = None, ipsec_sa_lifetime_traffic: Optional[pulumi.Input[int]] = None, name: Optional[pulumi.Input[str]] = None, + negotiation_type: Optional[pulumi.Input[str]] = None, route_type: Optional[pulumi.Input[str]] = None, security_group_policies: Optional[pulumi.Input[Sequence[pulumi.Input['ConnectionSecurityGroupPolicyArgs']]]] = None, tags: Optional[pulumi.Input[Mapping[str, Any]]] = None, @@ -52,10 +55,12 @@ def __init__(__self__, *, :param pulumi.Input[str] customer_gateway_id: ID of the customer gateway. :param pulumi.Input[str] pre_share_key: Pre-shared key of the VPN connection. :param pulumi.Input[str] vpn_gateway_id: ID of the VPN gateway. + :param pulumi.Input['ConnectionBgpConfigArgs'] bgp_config: BGP config. :param pulumi.Input[str] dpd_action: The action after DPD timeout. Valid values: clear (disconnect) and restart (try again). It is valid when DpdEnable is 1. :param pulumi.Input[int] dpd_enable: Specifies whether to enable DPD. Valid values: 0 (disable) and 1 (enable). :param pulumi.Input[int] dpd_timeout: DPD timeout period.Valid value ranges: [30~60], Default: 30; unit: second. If the request is not responded within this period, the peer end is considered not exists. This parameter is valid when the value of DpdEnable is 1. :param pulumi.Input[bool] enable_health_check: Whether intra-tunnel health checks are supported. + :param pulumi.Input['ConnectionHealthCheckConfigArgs'] health_check_config: VPN channel health check configuration. :param pulumi.Input[str] health_check_local_ip: Health check the address of this terminal. :param pulumi.Input[str] health_check_remote_ip: Health check peer address. :param pulumi.Input[str] ike_dh_group_name: DH group name of the IKE operation specification. Valid values: `GROUP1`, `GROUP2`, `GROUP5`, `GROUP14`, `GROUP24`. Default value is `GROUP1`. @@ -76,7 +81,8 @@ def __init__(__self__, *, :param pulumi.Input[int] ipsec_sa_lifetime_seconds: SA lifetime of the IPSEC operation specification, unit is second. Valid value ranges: [180~604800]. Default value is 3600 seconds. :param pulumi.Input[int] ipsec_sa_lifetime_traffic: SA lifetime of the IPSEC operation specification, unit is KB. The value should not be less then 2560. Default value is 1843200. :param pulumi.Input[str] name: Name of the VPN connection. The length of character is limited to 1-60. - :param pulumi.Input[str] route_type: Route type of the VPN connection. Valid value: `STATIC`, `StaticRoute`, `Policy`. + :param pulumi.Input[str] negotiation_type: The default negotiation type is `active`. Optional values: `active` (active negotiation), `passive` (passive negotiation), `flowTrigger` (traffic negotiation). + :param pulumi.Input[str] route_type: Route type of the VPN connection. Valid value: `STATIC`, `StaticRoute`, `Policy`, `Bgp`. :param pulumi.Input[Sequence[pulumi.Input['ConnectionSecurityGroupPolicyArgs']]] security_group_policies: SPD policy group, for example: {"10.0.0.5/24":["172.123.10.5/16"]}, 10.0.0.5/24 is the vpc intranet segment, and 172.123.10.5/16 is the IDC network segment. Users specify which network segments in the VPC can communicate with which network segments in your IDC. :param pulumi.Input[Mapping[str, Any]] tags: A list of tags used to associate different resources. :param pulumi.Input[str] vpc_id: ID of the VPC. Required if vpn gateway is not in `CCN` type, and doesn't make sense for `CCN` vpn gateway. @@ -84,6 +90,8 @@ def __init__(__self__, *, pulumi.set(__self__, "customer_gateway_id", customer_gateway_id) pulumi.set(__self__, "pre_share_key", pre_share_key) pulumi.set(__self__, "vpn_gateway_id", vpn_gateway_id) + if bgp_config is not None: + pulumi.set(__self__, "bgp_config", bgp_config) if dpd_action is not None: pulumi.set(__self__, "dpd_action", dpd_action) if dpd_enable is not None: @@ -92,6 +100,8 @@ def __init__(__self__, *, pulumi.set(__self__, "dpd_timeout", dpd_timeout) if enable_health_check is not None: pulumi.set(__self__, "enable_health_check", enable_health_check) + if health_check_config is not None: + pulumi.set(__self__, "health_check_config", health_check_config) if health_check_local_ip is not None: pulumi.set(__self__, "health_check_local_ip", health_check_local_ip) if health_check_remote_ip is not None: @@ -132,6 +142,8 @@ def __init__(__self__, *, pulumi.set(__self__, "ipsec_sa_lifetime_traffic", ipsec_sa_lifetime_traffic) if name is not None: pulumi.set(__self__, "name", name) + if negotiation_type is not None: + pulumi.set(__self__, "negotiation_type", negotiation_type) if route_type is not None: pulumi.set(__self__, "route_type", route_type) if security_group_policies is not None: @@ -177,6 +189,18 @@ def vpn_gateway_id(self) -> pulumi.Input[str]: def vpn_gateway_id(self, value: pulumi.Input[str]): pulumi.set(self, "vpn_gateway_id", value) + @property + @pulumi.getter(name="bgpConfig") + def bgp_config(self) -> Optional[pulumi.Input['ConnectionBgpConfigArgs']]: + """ + BGP config. + """ + return pulumi.get(self, "bgp_config") + + @bgp_config.setter + def bgp_config(self, value: Optional[pulumi.Input['ConnectionBgpConfigArgs']]): + pulumi.set(self, "bgp_config", value) + @property @pulumi.getter(name="dpdAction") def dpd_action(self) -> Optional[pulumi.Input[str]]: @@ -225,6 +249,18 @@ def enable_health_check(self) -> Optional[pulumi.Input[bool]]: def enable_health_check(self, value: Optional[pulumi.Input[bool]]): pulumi.set(self, "enable_health_check", value) + @property + @pulumi.getter(name="healthCheckConfig") + def health_check_config(self) -> Optional[pulumi.Input['ConnectionHealthCheckConfigArgs']]: + """ + VPN channel health check configuration. + """ + return pulumi.get(self, "health_check_config") + + @health_check_config.setter + def health_check_config(self, value: Optional[pulumi.Input['ConnectionHealthCheckConfigArgs']]): + pulumi.set(self, "health_check_config", value) + @property @pulumi.getter(name="healthCheckLocalIp") def health_check_local_ip(self) -> Optional[pulumi.Input[str]]: @@ -465,11 +501,23 @@ def name(self) -> Optional[pulumi.Input[str]]: def name(self, value: Optional[pulumi.Input[str]]): pulumi.set(self, "name", value) + @property + @pulumi.getter(name="negotiationType") + def negotiation_type(self) -> Optional[pulumi.Input[str]]: + """ + The default negotiation type is `active`. Optional values: `active` (active negotiation), `passive` (passive negotiation), `flowTrigger` (traffic negotiation). + """ + return pulumi.get(self, "negotiation_type") + + @negotiation_type.setter + def negotiation_type(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "negotiation_type", value) + @property @pulumi.getter(name="routeType") def route_type(self) -> Optional[pulumi.Input[str]]: """ - Route type of the VPN connection. Valid value: `STATIC`, `StaticRoute`, `Policy`. + Route type of the VPN connection. Valid value: `STATIC`, `StaticRoute`, `Policy`, `Bgp`. """ return pulumi.get(self, "route_type") @@ -517,6 +565,7 @@ def vpc_id(self, value: Optional[pulumi.Input[str]]): @pulumi.input_type class _ConnectionState: def __init__(__self__, *, + bgp_config: Optional[pulumi.Input['ConnectionBgpConfigArgs']] = None, create_time: Optional[pulumi.Input[str]] = None, customer_gateway_id: Optional[pulumi.Input[str]] = None, dpd_action: Optional[pulumi.Input[str]] = None, @@ -524,6 +573,7 @@ def __init__(__self__, *, dpd_timeout: Optional[pulumi.Input[int]] = None, enable_health_check: Optional[pulumi.Input[bool]] = None, encrypt_proto: Optional[pulumi.Input[str]] = None, + health_check_config: Optional[pulumi.Input['ConnectionHealthCheckConfigArgs']] = None, health_check_local_ip: Optional[pulumi.Input[str]] = None, health_check_remote_ip: Optional[pulumi.Input[str]] = None, ike_dh_group_name: Optional[pulumi.Input[str]] = None, @@ -545,6 +595,7 @@ def __init__(__self__, *, ipsec_sa_lifetime_traffic: Optional[pulumi.Input[int]] = None, is_ccn_type: Optional[pulumi.Input[bool]] = None, name: Optional[pulumi.Input[str]] = None, + negotiation_type: Optional[pulumi.Input[str]] = None, net_status: Optional[pulumi.Input[str]] = None, pre_share_key: Optional[pulumi.Input[str]] = None, route_type: Optional[pulumi.Input[str]] = None, @@ -556,6 +607,7 @@ def __init__(__self__, *, vpn_proto: Optional[pulumi.Input[str]] = None): """ Input properties used for looking up and filtering Connection resources. + :param pulumi.Input['ConnectionBgpConfigArgs'] bgp_config: BGP config. :param pulumi.Input[str] create_time: Create time of the VPN connection. :param pulumi.Input[str] customer_gateway_id: ID of the customer gateway. :param pulumi.Input[str] dpd_action: The action after DPD timeout. Valid values: clear (disconnect) and restart (try again). It is valid when DpdEnable is 1. @@ -563,6 +615,7 @@ def __init__(__self__, *, :param pulumi.Input[int] dpd_timeout: DPD timeout period.Valid value ranges: [30~60], Default: 30; unit: second. If the request is not responded within this period, the peer end is considered not exists. This parameter is valid when the value of DpdEnable is 1. :param pulumi.Input[bool] enable_health_check: Whether intra-tunnel health checks are supported. :param pulumi.Input[str] encrypt_proto: Encrypt proto of the VPN connection. + :param pulumi.Input['ConnectionHealthCheckConfigArgs'] health_check_config: VPN channel health check configuration. :param pulumi.Input[str] health_check_local_ip: Health check the address of this terminal. :param pulumi.Input[str] health_check_remote_ip: Health check peer address. :param pulumi.Input[str] ike_dh_group_name: DH group name of the IKE operation specification. Valid values: `GROUP1`, `GROUP2`, `GROUP5`, `GROUP14`, `GROUP24`. Default value is `GROUP1`. @@ -584,9 +637,10 @@ def __init__(__self__, *, :param pulumi.Input[int] ipsec_sa_lifetime_traffic: SA lifetime of the IPSEC operation specification, unit is KB. The value should not be less then 2560. Default value is 1843200. :param pulumi.Input[bool] is_ccn_type: Indicate whether is ccn type. Modification of this field only impacts force new logic of `vpc_id`. If `is_ccn_type` is true, modification of `vpc_id` will be ignored. :param pulumi.Input[str] name: Name of the VPN connection. The length of character is limited to 1-60. + :param pulumi.Input[str] negotiation_type: The default negotiation type is `active`. Optional values: `active` (active negotiation), `passive` (passive negotiation), `flowTrigger` (traffic negotiation). :param pulumi.Input[str] net_status: Net status of the VPN connection. Valid value: `AVAILABLE`. :param pulumi.Input[str] pre_share_key: Pre-shared key of the VPN connection. - :param pulumi.Input[str] route_type: Route type of the VPN connection. Valid value: `STATIC`, `StaticRoute`, `Policy`. + :param pulumi.Input[str] route_type: Route type of the VPN connection. Valid value: `STATIC`, `StaticRoute`, `Policy`, `Bgp`. :param pulumi.Input[Sequence[pulumi.Input['ConnectionSecurityGroupPolicyArgs']]] security_group_policies: SPD policy group, for example: {"10.0.0.5/24":["172.123.10.5/16"]}, 10.0.0.5/24 is the vpc intranet segment, and 172.123.10.5/16 is the IDC network segment. Users specify which network segments in the VPC can communicate with which network segments in your IDC. :param pulumi.Input[str] state: State of the connection. Valid value: `PENDING`, `AVAILABLE`, `DELETING`. :param pulumi.Input[Mapping[str, Any]] tags: A list of tags used to associate different resources. @@ -594,6 +648,8 @@ def __init__(__self__, *, :param pulumi.Input[str] vpn_gateway_id: ID of the VPN gateway. :param pulumi.Input[str] vpn_proto: Vpn proto of the VPN connection. """ + if bgp_config is not None: + pulumi.set(__self__, "bgp_config", bgp_config) if create_time is not None: pulumi.set(__self__, "create_time", create_time) if customer_gateway_id is not None: @@ -608,6 +664,8 @@ def __init__(__self__, *, pulumi.set(__self__, "enable_health_check", enable_health_check) if encrypt_proto is not None: pulumi.set(__self__, "encrypt_proto", encrypt_proto) + if health_check_config is not None: + pulumi.set(__self__, "health_check_config", health_check_config) if health_check_local_ip is not None: pulumi.set(__self__, "health_check_local_ip", health_check_local_ip) if health_check_remote_ip is not None: @@ -650,6 +708,8 @@ def __init__(__self__, *, pulumi.set(__self__, "is_ccn_type", is_ccn_type) if name is not None: pulumi.set(__self__, "name", name) + if negotiation_type is not None: + pulumi.set(__self__, "negotiation_type", negotiation_type) if net_status is not None: pulumi.set(__self__, "net_status", net_status) if pre_share_key is not None: @@ -669,6 +729,18 @@ def __init__(__self__, *, if vpn_proto is not None: pulumi.set(__self__, "vpn_proto", vpn_proto) + @property + @pulumi.getter(name="bgpConfig") + def bgp_config(self) -> Optional[pulumi.Input['ConnectionBgpConfigArgs']]: + """ + BGP config. + """ + return pulumi.get(self, "bgp_config") + + @bgp_config.setter + def bgp_config(self, value: Optional[pulumi.Input['ConnectionBgpConfigArgs']]): + pulumi.set(self, "bgp_config", value) + @property @pulumi.getter(name="createTime") def create_time(self) -> Optional[pulumi.Input[str]]: @@ -753,6 +825,18 @@ def encrypt_proto(self) -> Optional[pulumi.Input[str]]: def encrypt_proto(self, value: Optional[pulumi.Input[str]]): pulumi.set(self, "encrypt_proto", value) + @property + @pulumi.getter(name="healthCheckConfig") + def health_check_config(self) -> Optional[pulumi.Input['ConnectionHealthCheckConfigArgs']]: + """ + VPN channel health check configuration. + """ + return pulumi.get(self, "health_check_config") + + @health_check_config.setter + def health_check_config(self, value: Optional[pulumi.Input['ConnectionHealthCheckConfigArgs']]): + pulumi.set(self, "health_check_config", value) + @property @pulumi.getter(name="healthCheckLocalIp") def health_check_local_ip(self) -> Optional[pulumi.Input[str]]: @@ -1005,6 +1089,18 @@ def name(self) -> Optional[pulumi.Input[str]]: def name(self, value: Optional[pulumi.Input[str]]): pulumi.set(self, "name", value) + @property + @pulumi.getter(name="negotiationType") + def negotiation_type(self) -> Optional[pulumi.Input[str]]: + """ + The default negotiation type is `active`. Optional values: `active` (active negotiation), `passive` (passive negotiation), `flowTrigger` (traffic negotiation). + """ + return pulumi.get(self, "negotiation_type") + + @negotiation_type.setter + def negotiation_type(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "negotiation_type", value) + @property @pulumi.getter(name="netStatus") def net_status(self) -> Optional[pulumi.Input[str]]: @@ -1033,7 +1129,7 @@ def pre_share_key(self, value: Optional[pulumi.Input[str]]): @pulumi.getter(name="routeType") def route_type(self) -> Optional[pulumi.Input[str]]: """ - Route type of the VPN connection. Valid value: `STATIC`, `StaticRoute`, `Policy`. + Route type of the VPN connection. Valid value: `STATIC`, `StaticRoute`, `Policy`, `Bgp`. """ return pulumi.get(self, "route_type") @@ -1119,11 +1215,13 @@ class Connection(pulumi.CustomResource): def __init__(__self__, resource_name: str, opts: Optional[pulumi.ResourceOptions] = None, + bgp_config: Optional[pulumi.Input[pulumi.InputType['ConnectionBgpConfigArgs']]] = None, customer_gateway_id: Optional[pulumi.Input[str]] = None, dpd_action: Optional[pulumi.Input[str]] = None, dpd_enable: Optional[pulumi.Input[int]] = None, dpd_timeout: Optional[pulumi.Input[int]] = None, enable_health_check: Optional[pulumi.Input[bool]] = None, + health_check_config: Optional[pulumi.Input[pulumi.InputType['ConnectionHealthCheckConfigArgs']]] = None, health_check_local_ip: Optional[pulumi.Input[str]] = None, health_check_remote_ip: Optional[pulumi.Input[str]] = None, ike_dh_group_name: Optional[pulumi.Input[str]] = None, @@ -1144,6 +1242,7 @@ def __init__(__self__, ipsec_sa_lifetime_seconds: Optional[pulumi.Input[int]] = None, ipsec_sa_lifetime_traffic: Optional[pulumi.Input[int]] = None, name: Optional[pulumi.Input[str]] = None, + negotiation_type: Optional[pulumi.Input[str]] = None, pre_share_key: Optional[pulumi.Input[str]] = None, route_type: Optional[pulumi.Input[str]] = None, security_group_policies: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['ConnectionSecurityGroupPolicyArgs']]]]] = None, @@ -1161,32 +1260,43 @@ def __init__(__self__, import pulumi import tencentcloud_iac_pulumi as tencentcloud - foo = tencentcloud.vpn.Connection("foo", - customer_gateway_id="cgw-xfqag", + example = tencentcloud.vpn.Connection("example", + customer_gateway_id="cgw-e503id2z", + enable_health_check=True, + health_check_config=tencentcloud.vpn.ConnectionHealthCheckConfigArgs( + probe_interval=5000, + probe_threshold=3, + probe_timeout=150, + probe_type="NQA", + ), + health_check_local_ip="169.254.227.187", + health_check_remote_ip="169.254.164.37", ike_dh_group_name="GROUP2", ike_exchange_mode="AGGRESSIVE", - ike_local_address="1.1.1.1", + ike_local_address="159.75.204.38", ike_local_identity="ADDRESS", ike_proto_authen_algorithm="SHA", ike_proto_encry_algorithm="3DES-CBC", - ike_remote_address="2.2.2.2", + ike_remote_address="109.244.60.154", ike_remote_identity="ADDRESS", - ike_sa_lifetime_seconds=86401, + ike_sa_lifetime_seconds=86400, ipsec_encrypt_algorithm="3DES-CBC", ipsec_integrity_algorithm="SHA1", ipsec_pfs_dh_group="NULL", - ipsec_sa_lifetime_seconds=7200, - ipsec_sa_lifetime_traffic=2570, - pre_share_key="testt", + ipsec_sa_lifetime_seconds=14400, + ipsec_sa_lifetime_traffic=4096000000, + negotiation_type="flowTrigger", + pre_share_key="your_pre_share_key", + route_type="StaticRoute", security_group_policies=[tencentcloud.vpn.ConnectionSecurityGroupPolicyArgs( local_cidr_block="172.16.0.0/16", remote_cidr_blocks=["2.2.2.0/26"], )], tags={ - "test": "testt", + "createBy": "Terraform", }, - vpc_id="vpc-dk8zmwuf", - vpn_gateway_id="vpngw-8ccsnclt") + vpc_id="vpc-6ccw0s5l", + vpn_gateway_id="vpngw-33p5vnwd") ``` @@ -1200,11 +1310,13 @@ def __init__(__self__, :param str resource_name: The name of the resource. :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[pulumi.InputType['ConnectionBgpConfigArgs']] bgp_config: BGP config. :param pulumi.Input[str] customer_gateway_id: ID of the customer gateway. :param pulumi.Input[str] dpd_action: The action after DPD timeout. Valid values: clear (disconnect) and restart (try again). It is valid when DpdEnable is 1. :param pulumi.Input[int] dpd_enable: Specifies whether to enable DPD. Valid values: 0 (disable) and 1 (enable). :param pulumi.Input[int] dpd_timeout: DPD timeout period.Valid value ranges: [30~60], Default: 30; unit: second. If the request is not responded within this period, the peer end is considered not exists. This parameter is valid when the value of DpdEnable is 1. :param pulumi.Input[bool] enable_health_check: Whether intra-tunnel health checks are supported. + :param pulumi.Input[pulumi.InputType['ConnectionHealthCheckConfigArgs']] health_check_config: VPN channel health check configuration. :param pulumi.Input[str] health_check_local_ip: Health check the address of this terminal. :param pulumi.Input[str] health_check_remote_ip: Health check peer address. :param pulumi.Input[str] ike_dh_group_name: DH group name of the IKE operation specification. Valid values: `GROUP1`, `GROUP2`, `GROUP5`, `GROUP14`, `GROUP24`. Default value is `GROUP1`. @@ -1225,8 +1337,9 @@ def __init__(__self__, :param pulumi.Input[int] ipsec_sa_lifetime_seconds: SA lifetime of the IPSEC operation specification, unit is second. Valid value ranges: [180~604800]. Default value is 3600 seconds. :param pulumi.Input[int] ipsec_sa_lifetime_traffic: SA lifetime of the IPSEC operation specification, unit is KB. The value should not be less then 2560. Default value is 1843200. :param pulumi.Input[str] name: Name of the VPN connection. The length of character is limited to 1-60. + :param pulumi.Input[str] negotiation_type: The default negotiation type is `active`. Optional values: `active` (active negotiation), `passive` (passive negotiation), `flowTrigger` (traffic negotiation). :param pulumi.Input[str] pre_share_key: Pre-shared key of the VPN connection. - :param pulumi.Input[str] route_type: Route type of the VPN connection. Valid value: `STATIC`, `StaticRoute`, `Policy`. + :param pulumi.Input[str] route_type: Route type of the VPN connection. Valid value: `STATIC`, `StaticRoute`, `Policy`, `Bgp`. :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['ConnectionSecurityGroupPolicyArgs']]]] security_group_policies: SPD policy group, for example: {"10.0.0.5/24":["172.123.10.5/16"]}, 10.0.0.5/24 is the vpc intranet segment, and 172.123.10.5/16 is the IDC network segment. Users specify which network segments in the VPC can communicate with which network segments in your IDC. :param pulumi.Input[Mapping[str, Any]] tags: A list of tags used to associate different resources. :param pulumi.Input[str] vpc_id: ID of the VPC. Required if vpn gateway is not in `CCN` type, and doesn't make sense for `CCN` vpn gateway. @@ -1248,32 +1361,43 @@ def __init__(__self__, import pulumi import tencentcloud_iac_pulumi as tencentcloud - foo = tencentcloud.vpn.Connection("foo", - customer_gateway_id="cgw-xfqag", + example = tencentcloud.vpn.Connection("example", + customer_gateway_id="cgw-e503id2z", + enable_health_check=True, + health_check_config=tencentcloud.vpn.ConnectionHealthCheckConfigArgs( + probe_interval=5000, + probe_threshold=3, + probe_timeout=150, + probe_type="NQA", + ), + health_check_local_ip="169.254.227.187", + health_check_remote_ip="169.254.164.37", ike_dh_group_name="GROUP2", ike_exchange_mode="AGGRESSIVE", - ike_local_address="1.1.1.1", + ike_local_address="159.75.204.38", ike_local_identity="ADDRESS", ike_proto_authen_algorithm="SHA", ike_proto_encry_algorithm="3DES-CBC", - ike_remote_address="2.2.2.2", + ike_remote_address="109.244.60.154", ike_remote_identity="ADDRESS", - ike_sa_lifetime_seconds=86401, + ike_sa_lifetime_seconds=86400, ipsec_encrypt_algorithm="3DES-CBC", ipsec_integrity_algorithm="SHA1", ipsec_pfs_dh_group="NULL", - ipsec_sa_lifetime_seconds=7200, - ipsec_sa_lifetime_traffic=2570, - pre_share_key="testt", + ipsec_sa_lifetime_seconds=14400, + ipsec_sa_lifetime_traffic=4096000000, + negotiation_type="flowTrigger", + pre_share_key="your_pre_share_key", + route_type="StaticRoute", security_group_policies=[tencentcloud.vpn.ConnectionSecurityGroupPolicyArgs( local_cidr_block="172.16.0.0/16", remote_cidr_blocks=["2.2.2.0/26"], )], tags={ - "test": "testt", + "createBy": "Terraform", }, - vpc_id="vpc-dk8zmwuf", - vpn_gateway_id="vpngw-8ccsnclt") + vpc_id="vpc-6ccw0s5l", + vpn_gateway_id="vpngw-33p5vnwd") ``` @@ -1300,11 +1424,13 @@ def __init__(__self__, resource_name: str, *args, **kwargs): def _internal_init(__self__, resource_name: str, opts: Optional[pulumi.ResourceOptions] = None, + bgp_config: Optional[pulumi.Input[pulumi.InputType['ConnectionBgpConfigArgs']]] = None, customer_gateway_id: Optional[pulumi.Input[str]] = None, dpd_action: Optional[pulumi.Input[str]] = None, dpd_enable: Optional[pulumi.Input[int]] = None, dpd_timeout: Optional[pulumi.Input[int]] = None, enable_health_check: Optional[pulumi.Input[bool]] = None, + health_check_config: Optional[pulumi.Input[pulumi.InputType['ConnectionHealthCheckConfigArgs']]] = None, health_check_local_ip: Optional[pulumi.Input[str]] = None, health_check_remote_ip: Optional[pulumi.Input[str]] = None, ike_dh_group_name: Optional[pulumi.Input[str]] = None, @@ -1325,6 +1451,7 @@ def _internal_init(__self__, ipsec_sa_lifetime_seconds: Optional[pulumi.Input[int]] = None, ipsec_sa_lifetime_traffic: Optional[pulumi.Input[int]] = None, name: Optional[pulumi.Input[str]] = None, + negotiation_type: Optional[pulumi.Input[str]] = None, pre_share_key: Optional[pulumi.Input[str]] = None, route_type: Optional[pulumi.Input[str]] = None, security_group_policies: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['ConnectionSecurityGroupPolicyArgs']]]]] = None, @@ -1340,6 +1467,7 @@ def _internal_init(__self__, raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') __props__ = ConnectionArgs.__new__(ConnectionArgs) + __props__.__dict__["bgp_config"] = bgp_config if customer_gateway_id is None and not opts.urn: raise TypeError("Missing required property 'customer_gateway_id'") __props__.__dict__["customer_gateway_id"] = customer_gateway_id @@ -1347,6 +1475,7 @@ def _internal_init(__self__, __props__.__dict__["dpd_enable"] = dpd_enable __props__.__dict__["dpd_timeout"] = dpd_timeout __props__.__dict__["enable_health_check"] = enable_health_check + __props__.__dict__["health_check_config"] = health_check_config __props__.__dict__["health_check_local_ip"] = health_check_local_ip __props__.__dict__["health_check_remote_ip"] = health_check_remote_ip __props__.__dict__["ike_dh_group_name"] = ike_dh_group_name @@ -1367,6 +1496,7 @@ def _internal_init(__self__, __props__.__dict__["ipsec_sa_lifetime_seconds"] = ipsec_sa_lifetime_seconds __props__.__dict__["ipsec_sa_lifetime_traffic"] = ipsec_sa_lifetime_traffic __props__.__dict__["name"] = name + __props__.__dict__["negotiation_type"] = negotiation_type if pre_share_key is None and not opts.urn: raise TypeError("Missing required property 'pre_share_key'") __props__.__dict__["pre_share_key"] = pre_share_key @@ -1393,6 +1523,7 @@ def _internal_init(__self__, def get(resource_name: str, id: pulumi.Input[str], opts: Optional[pulumi.ResourceOptions] = None, + bgp_config: Optional[pulumi.Input[pulumi.InputType['ConnectionBgpConfigArgs']]] = None, create_time: Optional[pulumi.Input[str]] = None, customer_gateway_id: Optional[pulumi.Input[str]] = None, dpd_action: Optional[pulumi.Input[str]] = None, @@ -1400,6 +1531,7 @@ def get(resource_name: str, dpd_timeout: Optional[pulumi.Input[int]] = None, enable_health_check: Optional[pulumi.Input[bool]] = None, encrypt_proto: Optional[pulumi.Input[str]] = None, + health_check_config: Optional[pulumi.Input[pulumi.InputType['ConnectionHealthCheckConfigArgs']]] = None, health_check_local_ip: Optional[pulumi.Input[str]] = None, health_check_remote_ip: Optional[pulumi.Input[str]] = None, ike_dh_group_name: Optional[pulumi.Input[str]] = None, @@ -1421,6 +1553,7 @@ def get(resource_name: str, ipsec_sa_lifetime_traffic: Optional[pulumi.Input[int]] = None, is_ccn_type: Optional[pulumi.Input[bool]] = None, name: Optional[pulumi.Input[str]] = None, + negotiation_type: Optional[pulumi.Input[str]] = None, net_status: Optional[pulumi.Input[str]] = None, pre_share_key: Optional[pulumi.Input[str]] = None, route_type: Optional[pulumi.Input[str]] = None, @@ -1437,6 +1570,7 @@ def get(resource_name: str, :param str resource_name: The unique name of the resulting resource. :param pulumi.Input[str] id: The unique provider ID of the resource to lookup. :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[pulumi.InputType['ConnectionBgpConfigArgs']] bgp_config: BGP config. :param pulumi.Input[str] create_time: Create time of the VPN connection. :param pulumi.Input[str] customer_gateway_id: ID of the customer gateway. :param pulumi.Input[str] dpd_action: The action after DPD timeout. Valid values: clear (disconnect) and restart (try again). It is valid when DpdEnable is 1. @@ -1444,6 +1578,7 @@ def get(resource_name: str, :param pulumi.Input[int] dpd_timeout: DPD timeout period.Valid value ranges: [30~60], Default: 30; unit: second. If the request is not responded within this period, the peer end is considered not exists. This parameter is valid when the value of DpdEnable is 1. :param pulumi.Input[bool] enable_health_check: Whether intra-tunnel health checks are supported. :param pulumi.Input[str] encrypt_proto: Encrypt proto of the VPN connection. + :param pulumi.Input[pulumi.InputType['ConnectionHealthCheckConfigArgs']] health_check_config: VPN channel health check configuration. :param pulumi.Input[str] health_check_local_ip: Health check the address of this terminal. :param pulumi.Input[str] health_check_remote_ip: Health check peer address. :param pulumi.Input[str] ike_dh_group_name: DH group name of the IKE operation specification. Valid values: `GROUP1`, `GROUP2`, `GROUP5`, `GROUP14`, `GROUP24`. Default value is `GROUP1`. @@ -1465,9 +1600,10 @@ def get(resource_name: str, :param pulumi.Input[int] ipsec_sa_lifetime_traffic: SA lifetime of the IPSEC operation specification, unit is KB. The value should not be less then 2560. Default value is 1843200. :param pulumi.Input[bool] is_ccn_type: Indicate whether is ccn type. Modification of this field only impacts force new logic of `vpc_id`. If `is_ccn_type` is true, modification of `vpc_id` will be ignored. :param pulumi.Input[str] name: Name of the VPN connection. The length of character is limited to 1-60. + :param pulumi.Input[str] negotiation_type: The default negotiation type is `active`. Optional values: `active` (active negotiation), `passive` (passive negotiation), `flowTrigger` (traffic negotiation). :param pulumi.Input[str] net_status: Net status of the VPN connection. Valid value: `AVAILABLE`. :param pulumi.Input[str] pre_share_key: Pre-shared key of the VPN connection. - :param pulumi.Input[str] route_type: Route type of the VPN connection. Valid value: `STATIC`, `StaticRoute`, `Policy`. + :param pulumi.Input[str] route_type: Route type of the VPN connection. Valid value: `STATIC`, `StaticRoute`, `Policy`, `Bgp`. :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['ConnectionSecurityGroupPolicyArgs']]]] security_group_policies: SPD policy group, for example: {"10.0.0.5/24":["172.123.10.5/16"]}, 10.0.0.5/24 is the vpc intranet segment, and 172.123.10.5/16 is the IDC network segment. Users specify which network segments in the VPC can communicate with which network segments in your IDC. :param pulumi.Input[str] state: State of the connection. Valid value: `PENDING`, `AVAILABLE`, `DELETING`. :param pulumi.Input[Mapping[str, Any]] tags: A list of tags used to associate different resources. @@ -1479,6 +1615,7 @@ def get(resource_name: str, __props__ = _ConnectionState.__new__(_ConnectionState) + __props__.__dict__["bgp_config"] = bgp_config __props__.__dict__["create_time"] = create_time __props__.__dict__["customer_gateway_id"] = customer_gateway_id __props__.__dict__["dpd_action"] = dpd_action @@ -1486,6 +1623,7 @@ def get(resource_name: str, __props__.__dict__["dpd_timeout"] = dpd_timeout __props__.__dict__["enable_health_check"] = enable_health_check __props__.__dict__["encrypt_proto"] = encrypt_proto + __props__.__dict__["health_check_config"] = health_check_config __props__.__dict__["health_check_local_ip"] = health_check_local_ip __props__.__dict__["health_check_remote_ip"] = health_check_remote_ip __props__.__dict__["ike_dh_group_name"] = ike_dh_group_name @@ -1507,6 +1645,7 @@ def get(resource_name: str, __props__.__dict__["ipsec_sa_lifetime_traffic"] = ipsec_sa_lifetime_traffic __props__.__dict__["is_ccn_type"] = is_ccn_type __props__.__dict__["name"] = name + __props__.__dict__["negotiation_type"] = negotiation_type __props__.__dict__["net_status"] = net_status __props__.__dict__["pre_share_key"] = pre_share_key __props__.__dict__["route_type"] = route_type @@ -1518,6 +1657,14 @@ def get(resource_name: str, __props__.__dict__["vpn_proto"] = vpn_proto return Connection(resource_name, opts=opts, __props__=__props__) + @property + @pulumi.getter(name="bgpConfig") + def bgp_config(self) -> pulumi.Output['outputs.ConnectionBgpConfig']: + """ + BGP config. + """ + return pulumi.get(self, "bgp_config") + @property @pulumi.getter(name="createTime") def create_time(self) -> pulumi.Output[str]: @@ -1574,6 +1721,14 @@ def encrypt_proto(self) -> pulumi.Output[str]: """ return pulumi.get(self, "encrypt_proto") + @property + @pulumi.getter(name="healthCheckConfig") + def health_check_config(self) -> pulumi.Output['outputs.ConnectionHealthCheckConfig']: + """ + VPN channel health check configuration. + """ + return pulumi.get(self, "health_check_config") + @property @pulumi.getter(name="healthCheckLocalIp") def health_check_local_ip(self) -> pulumi.Output[str]: @@ -1742,6 +1897,14 @@ def name(self) -> pulumi.Output[str]: """ return pulumi.get(self, "name") + @property + @pulumi.getter(name="negotiationType") + def negotiation_type(self) -> pulumi.Output[str]: + """ + The default negotiation type is `active`. Optional values: `active` (active negotiation), `passive` (passive negotiation), `flowTrigger` (traffic negotiation). + """ + return pulumi.get(self, "negotiation_type") + @property @pulumi.getter(name="netStatus") def net_status(self) -> pulumi.Output[str]: @@ -1762,7 +1925,7 @@ def pre_share_key(self) -> pulumi.Output[str]: @pulumi.getter(name="routeType") def route_type(self) -> pulumi.Output[str]: """ - Route type of the VPN connection. Valid value: `STATIC`, `StaticRoute`, `Policy`. + Route type of the VPN connection. Valid value: `STATIC`, `StaticRoute`, `Policy`, `Bgp`. """ return pulumi.get(self, "route_type") diff --git a/sdk/python/tencentcloud_iac_pulumi/vpn/outputs.py b/sdk/python/tencentcloud_iac_pulumi/vpn/outputs.py index 8881c1dd5..c165bdb8f 100644 --- a/sdk/python/tencentcloud_iac_pulumi/vpn/outputs.py +++ b/sdk/python/tencentcloud_iac_pulumi/vpn/outputs.py @@ -11,6 +11,8 @@ from . import outputs __all__ = [ + 'ConnectionBgpConfig', + 'ConnectionHealthCheckConfig', 'ConnectionSecurityGroupPolicy', 'CustomerGatewayConfigurationDownloadCustomerGatewayVendor', 'GetConnectionsConnectionListResult', @@ -21,6 +23,145 @@ 'GetGatewaysGatewayListResult', ] +@pulumi.output_type +class ConnectionBgpConfig(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "localBgpIp": + suggest = "local_bgp_ip" + elif key == "remoteBgpIp": + suggest = "remote_bgp_ip" + elif key == "tunnelCidr": + suggest = "tunnel_cidr" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in ConnectionBgpConfig. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + ConnectionBgpConfig.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + ConnectionBgpConfig.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + local_bgp_ip: str, + remote_bgp_ip: str, + tunnel_cidr: str): + """ + :param str local_bgp_ip: Cloud BGP address. It must be allocated from within the BGP tunnel network segment. + :param str remote_bgp_ip: User side BGP address. It must be allocated from within the BGP tunnel network segment. + :param str tunnel_cidr: BGP tunnel segment. + """ + pulumi.set(__self__, "local_bgp_ip", local_bgp_ip) + pulumi.set(__self__, "remote_bgp_ip", remote_bgp_ip) + pulumi.set(__self__, "tunnel_cidr", tunnel_cidr) + + @property + @pulumi.getter(name="localBgpIp") + def local_bgp_ip(self) -> str: + """ + Cloud BGP address. It must be allocated from within the BGP tunnel network segment. + """ + return pulumi.get(self, "local_bgp_ip") + + @property + @pulumi.getter(name="remoteBgpIp") + def remote_bgp_ip(self) -> str: + """ + User side BGP address. It must be allocated from within the BGP tunnel network segment. + """ + return pulumi.get(self, "remote_bgp_ip") + + @property + @pulumi.getter(name="tunnelCidr") + def tunnel_cidr(self) -> str: + """ + BGP tunnel segment. + """ + return pulumi.get(self, "tunnel_cidr") + + +@pulumi.output_type +class ConnectionHealthCheckConfig(dict): + @staticmethod + def __key_warning(key: str): + suggest = None + if key == "probeInterval": + suggest = "probe_interval" + elif key == "probeThreshold": + suggest = "probe_threshold" + elif key == "probeTimeout": + suggest = "probe_timeout" + elif key == "probeType": + suggest = "probe_type" + + if suggest: + pulumi.log.warn(f"Key '{key}' not found in ConnectionHealthCheckConfig. Access the value via the '{suggest}' property getter instead.") + + def __getitem__(self, key: str) -> Any: + ConnectionHealthCheckConfig.__key_warning(key) + return super().__getitem__(key) + + def get(self, key: str, default = None) -> Any: + ConnectionHealthCheckConfig.__key_warning(key) + return super().get(key, default) + + def __init__(__self__, *, + probe_interval: Optional[int] = None, + probe_threshold: Optional[int] = None, + probe_timeout: Optional[int] = None, + probe_type: Optional[str] = None): + """ + :param int probe_interval: Detection interval, Tencent Cloud's interval between two health checks, range [1000-5000], Unit: ms. + :param int probe_threshold: Detection times, perform route switching after N consecutive health check failures, range [3-8], Unit: times. + :param int probe_timeout: Detection timeout, range [10-5000], Unit: ms. + :param str probe_type: Detection mode, default is `NQA`, cannot be modified. + """ + if probe_interval is not None: + pulumi.set(__self__, "probe_interval", probe_interval) + if probe_threshold is not None: + pulumi.set(__self__, "probe_threshold", probe_threshold) + if probe_timeout is not None: + pulumi.set(__self__, "probe_timeout", probe_timeout) + if probe_type is not None: + pulumi.set(__self__, "probe_type", probe_type) + + @property + @pulumi.getter(name="probeInterval") + def probe_interval(self) -> Optional[int]: + """ + Detection interval, Tencent Cloud's interval between two health checks, range [1000-5000], Unit: ms. + """ + return pulumi.get(self, "probe_interval") + + @property + @pulumi.getter(name="probeThreshold") + def probe_threshold(self) -> Optional[int]: + """ + Detection times, perform route switching after N consecutive health check failures, range [3-8], Unit: times. + """ + return pulumi.get(self, "probe_threshold") + + @property + @pulumi.getter(name="probeTimeout") + def probe_timeout(self) -> Optional[int]: + """ + Detection timeout, range [10-5000], Unit: ms. + """ + return pulumi.get(self, "probe_timeout") + + @property + @pulumi.getter(name="probeType") + def probe_type(self) -> Optional[str]: + """ + Detection mode, default is `NQA`, cannot be modified. + """ + return pulumi.get(self, "probe_type") + + @pulumi.output_type class ConnectionSecurityGroupPolicy(dict): @staticmethod